2015-07-02 6 views
2

У меня есть версия Oracle SQL Developer 4.1.19 (64 бит) с включенным JDK8.Аутентификация ОС SQL Developer

Это работает для соединений Oracle, для которых требуется комбинация {имя пользователя, пароль} - никаких проблем нет.

Моя проблема в том, что я не могу подключиться к конфигурации аутентификации ОС.

Пожалуйста, обратите внимание, что я может подключиться из командной строки с проверкой подлинности операционной системы, используя SQLPLUS/@ MY_TNS_NAME и это работает отлично.

У меня есть приложение SQL Developer, настроенное для использования драйвера OCI/Thick, а также для использования базового моментального клиента x64 12.1.0.2.0. Это кажется для настройки ok, если я проверил Help-> About-Properties, тогда sqldeveloper.oci.available имеет значение «true».

Однако каждый раз, когда я проверяю соединение я получаю сообщение об ошибке «ORA-01017: неверное имя пользователя/пароль, вход запрещен»

Моя ОС Windows 7 Enterprise x64 SP1

У меня есть очевидно, проверял опцию «Аутентификация ОС» :).

Есть ли какая-либо другая конфигурация, которую мне нужно изменить/проверить, чтобы заставить SQL Developer позволить мне подключиться через аутентификацию ОС? (Изменение типа аутентификации для меня не является вариантом).

Заранее спасибо.

ответ

-1

Где находятся файлы Sqlnet.ora и tnsNames.ora?

мне пришлось создать переменные окружения TNS_ADMIN с пользовательским адресом, который содержал мои sqlnet.ora и tnsnames.ora файлов.

Убедитесь, что файл sqlnet.ora содержит строку:

SQLNET.AUTHENTICATION_SERVICES = (NTS) 

Вы также должны убедиться, что мгновенное расположение клиента, например, c:/instantclient12 - это первая запись в переменной PATH.

Что происходит, когда вы нажимаете кнопку теста при настройке местоположения клиента Oracle в sql-разработчике?

+0

К сожалению, добавление переменной окружения не сработало для меня. Да, я уже установил SQLNET.AUTHENTICATION_SERVICES = (NTS) – user2764144

+0

Я отредактировал свой оригинальный ответ, чтобы включить немного о переменной PATH –

0

Разработчик Oracle Sql и sqlplus работают с аутентификацией ОС совершенно по-разному. Разработчик Sql всегда пытается авторизировать, заменив имя пользователя «\». SLQPLUS заменяет только имя пользователя. При добавлении домена к имени пользователя. OSAUTH_PREFIX_DOMAIN = TRUE (реестр Windows). Sqlplus добавляет имя домена к имени. Разработчик Sql всегда пытается авторизировать, заменив имя пользователя «\» без имени домена.

Пример 1.

CREATE USER "OPS$ORACLE.ADMIN" IDENTIFIED EXTERNALLY 
PROFILE DEFAULT 
DEFAULT TABLESPACE tablespace_oracle_admin 
TEMPORARY TABLESPACE TEMP 
QUOTA UNLIMITED ON tablespace_oracle_admin 
ACCOUNT UNLOCK ; 

C:\ORA\DB\product\11.2.0\dbhome_1\bin\sqlplus/
SQL> Select user from dual; 

USER 
___________________ 
OPS$ORACLE.ADMIN 

Для подключения с SQL Developer с базой данных, необходимо поставить символ вместо имени пользователя «/» без указания пароля.

Select user from dual; 

USER 
___________________ 
OPS$ORACLE.ADMIN 

Пример 2.

CREATE USER "OPS$\ORACLE.ADMIN" IDENTIFIED EXTERNALLY 
PROFILE DEFAULT 
DEFAULT TABLESPACE tablespace_oracle_admin 
TEMPORARY TABLESPACE TEMP 
QUOTA UNLIMITED ON tablespace_oracle_admin 
ACCOUNT UNLOCK ; 

При подключении к использованию SQL Developer, OS работа аутентификации !!!!

Select user from dual; 

USER 
___________________ 
OPS$\ORACLE.ADMIN 
0

Был такой же вопрос. Причина в том, что легкий JDBC от SQL Developer не поддерживает расширенную аутентификацию. SQL * Plus, напротив, скомпилирован против родного драйвера, поэтому у него нет проблем.

Решение: в SQL Developer, перейдите

Tools -> Preferences -> Database -> Advanced Parameters 

Если вы Use Oracle Client уже проверили, просто проверить Use OCI/Thick driver. Это все. Если нет, сначала проверьте Use Oracle Client и укажите путь к драйверу. Идея взята из here

Говоря о клиентах, Oracle позволяет иметь зоопарк версий. Если у вас есть проблемы с выбором рабочего клиента, самым чистым вариантом будет использование пути, в котором находится ваш SQL * Plus. Просто удалите \bin со своего конца и убедитесь, что его архитектура процессора соответствует SQL Developer.