Authentication SQL开发人员操作系统身份验证
我有包含JDK8的Oracle SQL Developer版本4.1.19(64位) 这适用于需要{username,password}组合的Oracle连接-没有问题 我的问题是我无法连接操作系统身份验证配置 请注意,我可以通过使用sqlplus/@MY_TNS_NAME从命令行连接到操作系统身份验证,这很好 我将SQL Developer应用程序配置为使用OCI/Thick驱动程序,并使用x64 12.1.0.2.0基本即时客户端。这似乎配置得很好,如果我选中帮助->关于属性,那么sqldeveloper.oci.available的值为“true” 但是,每次测试连接时,我都会收到失败消息 “ORA-01017:无效的用户名/密码;登录被拒绝” 我的操作系统是Windows 7 Enterprise x64 SP1 我显然选中了选项“OS身份验证”: 为了让SQL Developer允许我通过OS身份验证进行连接,我是否需要更改/检查任何其他配置?(更改身份验证类型不是我的选项)Authentication SQL开发人员操作系统身份验证,authentication,oracle-sqldeveloper,Authentication,Oracle Sqldeveloper,我有包含JDK8的Oracle SQL Developer版本4.1.19(64位) 这适用于需要{username,password}组合的Oracle连接-没有问题 我的问题是我无法连接操作系统身份验证配置 请注意,我可以通过使用sqlplus/@MY_TNS_NAME从命令行连接到操作系统身份验证,这很好 我将SQL Developer应用程序配置为使用OCI/Thick驱动程序,并使用x64 12.1.0.2.0基本即时客户端。这似乎配置得很好,如果我选中帮助->关于属性,那么sqlde
提前感谢。您的Sqlnet.ora和tnsNames.ora文件在哪里 我必须创建一个带有自定义位置的环境变量TNS_ADMIN,该位置包含我的
sqlnet.ora
和tnsnames.ora
文件
确保您的sqlnet.ora文件包含以下行:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
您还需要确保即时客户端位置(例如c:/instantclient12)是PATH变量中的第一个条目
在sql developer中设置Oracle客户端位置时,按下测试按钮会发生什么情况 Oracle Sql developer和sqlplus以完全不同的方式使用操作系统身份验证。 Sql developer总是尝试通过替换用户名“\”来进行授权。 SLQPLUS仅替换用户名。将域添加到用户名时。
OSAUTH\u PREFIX\u DOMAIN=TRUE
(windows注册表)。Sqlplus将域名附加到名称后面。
Sql developer总是试图通过替换为不带域名的用户名“\”
来进行授权
示例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
有同样的问题。原因是SQL Developer的轻量级JDBC不支持扩展身份验证。相反,SQL*Plus是针对本机驱动程序编译的,这就是它没有问题的原因 解决方案:在SQL Developer中,转到
Tools -> Preferences -> Database -> Advanced Parameters
如果您已经选中了使用Oracle客户端
,只需选中使用OCI/厚驱动程序
。这就是全部。如果没有,请先选中使用Oracle客户端
,并指定驱动程序路径。这个想法来源于
说到客户端,Oracle允许有一个版本动物园。如果在选择工作客户机时遇到问题,最干净的选择是使用SQL*Plus所在的路径。只需从末尾剥离
\bin
,并确保其CPU体系结构与SQL Developer匹配。不幸的是,添加环境变量对我不起作用。是的,我已经设置了SQLNET.AUTHENTICATION\u SERVICES=(NTS)我已经编辑了我的原始答案,其中包含了一些关于路径变量的信息。这一个对我来说很有用。谢谢必须打开这两个设置,然后重新启动SQL Developer,才能使其生效。必须告诉它我即时客户端的文件夹和我的tsnames.ora文件。