Как я заставляю свое JAVA-приложение идентифицировать себя к Oracle на соединении?

Я пытаюсь, да. Они действительно помогают пригодности для обслуживания и удобочитаемости Вашего кода. Однако существуют люди, которые действительно оскорбляют их, обычно (от того, что я видел) путем принуждения системы в шаблон, который не существует.

8
задан ninesided 10 October 2009 в 16:32
поделиться

3 ответа

java.util.Properties props = new java.util.Properties();
props.setProperty("password","mypassword");
props.setProperty("user","myusername");
props.put("v$session.osuser", System.getProperty("user.name").toString());
props.put("v$session.machine", InetAddress.getLocalHost().getCanonicalHostName());
props.put("v$session.program", "My Program Name");
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
Connection conn=
    DriverManager.getConnection("jdbc:oracle:thin:@myhostname:1521:mysid", props);

SQL>select username,osuser,program,machine
from v$session
where username = 'ROB'; 

USERNAME  OSUSER       PROGRAM             MACHINE
--------- -----------  ------------------  -----------
ROB       rmerkw       My Program Name     machine

На уровне приложения вы можете использовать следующие методы, чтобы установить client_info , модуль ] и действие в v $ session :

dbms_application_info.set_client_info
dbms_application_info.set_module
dbms_application_info.set_action
16
ответ дан 5 December 2019 в 07:59
поделиться

Вам необходимо определить свойство соединения v $ session.program в вашем источнике данных таким образом, чтобы это свойство добавлялось к каждому соединению. Как вы это сделаете, зависит от реализации вашего источника данных. Значение, которое вы задали для свойства, появится в активной таблице сеанса Oracle.

2
ответ дан 5 December 2019 в 07:59
поделиться

Также существует функция Oracle:

dbms_application_info.set_client_info('Client Info');

, которая устанавливает столбец ClientInfo в v $ session.

Это может быть полезно, если у вас есть доступ только к соединению, а не к базовому источнику данных или DriverManager.

2
ответ дан 5 December 2019 в 07:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: