SQL Developer OS身份验证

时间:2015-07-02 13:37:25

标签: authentication oracle-sqldeveloper

我有Oracle SQL Developer版本4.1.19(64位),包含JDK8。

这适用于需要{username,password}组合的Oracle连接 - 没有问题。

我的问题是我无法连接OS身份验证配置。

请注意,可以使用 sqlplus / @ MY_TNS_NAME 从命令行进行OS身份验证连接,这样可以正常使用。

我将SQL Developer应用程序配置为使用OCI / Thick驱动程序,并使用x64 12.1.0.2.0基本即时客户端。这个似乎配置正确,如果我检查 Help-> About-Properties ,那么sqldeveloper.oci.available的值为" true"。

但是,每次测试连接时,都会收到失败消息 " ORA-01017:用户名/密码无效;登录被拒绝"

我的操作系统是Windows 7 Enterprise x64 SP1

我显然检查了选项" OS Authentication" :)

为了让SQL Developer允许我通过操作系统身份验证进行连接,是否还需要更改/检查其他配置? (更改身份验证类型对我来说不是一个选项。)

提前致谢。

3 个答案:

答案 0 :(得分:1)

有同样的问题。原因是SQL Developer的轻量级JDBC不支持扩展身份验证。相反,SQL * Plus是针对本机驱动程序编译的,这就是它没有问题的原因。

解决方案:在SQL Developer中,转到

Tools -> Preferences -> Database -> Advanced Parameters

如果您已选中Use Oracle Client,请点击Use OCI/Thick driver。这就是全部。如果没有,请先检查Use Oracle Client,然后指定驱动程序路径。想法取自here

谈到客户,Oracle允许拥有一个版本的动物园。如果您在选择工作客户端时遇到问题,最干净的选择是使用SQL * Plus所在的路径。从它的末尾剥离\bin,并确保其CPU架构与SQL Developer匹配。

答案 1 :(得分:0)

Oracle Sql开发人员和sqlplus以完全不同的方式使用OS身份验证。 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开发人员时,OS身份验证工作!!!!

Select user from dual;

USER
___________________
OPS$\ORACLE.ADMIN

答案 2 :(得分:-1)

您的Sqlnet.ora和tnsNames.ora文件位于何处?

我必须使用包含我的sqlnet.oratnsnames.ora文件的自定义位置创建环境变量 TNS_ADMIN

确保您的sqlnet.ora文件包含以下行:

SQLNET.AUTHENTICATION_SERVICES = (NTS)

您还需要确保即时客户位置,例如c:/ instantclient12是 PATH 变量中的第一个条目。

在sql developer中设置Oracle客户端位置时按下测试按钮会发生什么?

相关问题