我有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允许我通过操作系统身份验证进行连接,是否还需要更改/检查其他配置? (更改身份验证类型对我来说不是一个选项。)
提前致谢。
答案 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.ora
和tnsnames.ora
文件的自定义位置创建环境变量 TNS_ADMIN 。
确保您的sqlnet.ora文件包含以下行:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
您还需要确保即时客户位置,例如c:/ instantclient12是 PATH 变量中的第一个条目。
在sql developer中设置Oracle客户端位置时按下测试按钮会发生什么?