我把oracle 11g装在了自己的开发电脑上,也就是服务端和客户端在一台机子上。
当用vs.net连接时,出现ORA-12631:用户名检索失败。baidu了下,但没有查出解决方法。
故来此请教!
说明:试过的解决方法如下:
1)设置sqlnet.ora SQLNET.AUTHENTICATION_SERVICES = (NTS) ,把NTS改为NONE后,可以不报这个错,但是取不到数据库里的数据。因为我机子只有域用户,没有本地用户。
2)已把os用户加到ora_dba组,也没有解决些问题。
但我连接一个远程的服务器,就不报这要的错误,用的也是一个域用户,而且我到远程服务器上看了配置,
a)sqlnet.ora SQLNET.AUTHENTICATION_SERVICES = (NTS) 和我设的一样的。
b)远程机子上用户组里的ora_dba组中加入我的域用户和我本机加入的一样。
请教可能出现的问题,谢谢!
域用户添加到ora_dba组了吗?
添加到ora_dba组了,而且是早就存了,不是刚加的。
因为之前可以用域用户连接远程的oracle 服务器的。
现在就是连接本机的。
@Albert Fei: 在 sqlnet.ora 中加上 names.ldap_authenticate_bind = TRUE 试试,详见 Using Oracle Database with Microsoft Active Directory 。如果不行,建议不要用Windows验证,用Oracle本身的验证。
@dudu: 用Oracle本身的验证,还能不能用系统的域用户名登录?
因为我的电脑现在只有域用户名,没有本地名。
@Albert Fei: 试试这个方法:ORA-12638:Credential retrieval failed(身份证明检索失败)解决方法
@dudu: 试了names.ldap_authenticate_bind = TRUE好像还是不行。
@dudu: 非常感谢你的帮助,终于把问题解决了。
主要方法:
1) 在环境变量里加入ORCLE_SID, TNS_ADMIN
2) 把sqlnet.ora SQLNET.AUTHENTICATION_SERVICES = (NTS)其中的NTS改成其它的就行;我是改成NONE.
经测试,NTS可以改成任何其它的都行;也可以把(NTS) 去掉,设任何值都行,什么值也不设为空也行;也可以把sqlnet.ora SQLNET.AUTHENTICATION_SERVICES = (NTS)整行都去掉。
@Albert Fei: 学习了,原来这地方也要设置环境变量