Подключение к Oracle без имени пользователя или пароля - PullRequest
5 голосов
/ 17 октября 2008

Oracle имеет эту концепцию, позволяющую идентифицировать пользователей базы данных пользователем операционной системы, который запускает программу, подключающуюся к Oracle. Смотрите здесь .

Это позволяет вам, например, пользователю на машине с Unix, выполнить команду, такую ​​как:

sqlplus /

Я пытаюсь написать программу на Java для Oracle 10.2, которая подключается без имени пользователя или пароля. Очевидный выбор URL:

jdbc:oracle:thin:/@localhost:1521:MYDBSID

не работает, выдавая ошибку (извините, у меня сейчас нет ошибки).

Я пытался сделать это и во многих других формах, но безуспешно.

Есть ли у кого-нибудь предложения по подключению Java-программы к Oracle с помощью метода идентификации ОС?

Ответы [ 8 ]

5 голосов
/ 17 октября 2008

Тонкий драйвер JDBC - это 100% чистая реализация Java, которая не может собрать необходимую информацию из операционной системы.

Драйвер JDBC OCI может сделать это! Используйте jdbc:oracle:oci8:/@MYDBSID, для этого потребуется, чтобы драйвер Oracle был установлен на этом компьютере, и это не проблема, если это сервер (он быстрее загружается и поддерживает гораздо больше функций, чем тонкий драйвер)

1 голос
/ 20 октября 2008

Спасибо тем, кто ответил. Мы поехали с драйвером OCI.

Я нашел документацию, подтверждающую, что Oracle 11g поддерживает аутентификацию пользователя ОС через тонкий драйвер:

http://www.orindasoft.com/public/Oracle_JDBC_JavaDoc/javadoc1110/oracle/jdbc/OracleConnection.html#CONNECTION_PROPERTY_THIN_VSESSION_OSUSER

У меня нет настройки 11g для тестирования, поэтому я не уверен, что это работает.

1 голос
/ 17 октября 2008

Драйвер jdbc, поставляемый с помощью oracle, НЕ способен собирать имя пользователя и пароль операционной системы из предоставленного вами URL-адреса. Предположим, существуют сторонние поставщики драйверов JDBC для ORACLE, один из которых может предоставить запрашиваемую вами функциональность. Вы должны погуглить.

0 голосов
/ 18 июня 2015

Поддержка аутентификации ОС в тонком драйвере JDBC была добавлена ​​в 11g (вы можете скачать тонкий драйвер JDBC из 11.2.0.4 в OTN).

Обратите внимание, что вы должны разрешить удаленную аутентификацию ОС на сервере (через TCP), иначе она будет работать только с sqlplus, использующим IPC или BEQ локально. Добавьте в файл init.ora следующее:

REMOTE_OS_AUTHENT = TRUE

Затем, если вы используете «osuserdemo» на клиентском компьютере, создайте пользователя базы данных следующим образом и перезапустите БД:

 CREATE USER OSUSERDEMO IDENTIFIED EXTERNALLY;
 GRANT CONNECT,CREATE SESSION,RESOURCE TO OSUSERDEMO; 

И тонкий драйвер JDBC должен иметь возможность подключения без имени пользователя или пароля.

Стоит отметить, что эта функция - считающаяся крайне незащищенной - была отменена в 12c.

0 голосов
/ 17 июня 2015

jdbc:oracle:oci:@ работает с ojdbc6.jar и Oracle 11g2

0 голосов
/ 14 декабря 2011

попробуйте JDBC: оракул: тонкий: имя пользователя / пароль @ локальный: 1521: MYDBSID

необходимо указать информацию об учетной записи

sqlplus / as sysdba на Unix-машине, которая проходит аутентификацию операционной системы

0 голосов
/ 04 августа 2010

Тонкий драйвер 11g можно подключить с использованием аутентификации Kerberos.

См. Подключение к базе данных Oracle с использованием Kerberos

0 голосов
/ 17 октября 2008

Если вы обращаетесь к Oracle с сервера приложений J2EE, вы можете достичь аналогичного результата, используя JNDI для получения источника данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...