Heim > Datenbank > MySQL-Tutorial > Windows环境下ORA-12638错误及SYS用户登陆权限验证

Windows环境下ORA-12638错误及SYS用户登陆权限验证

WBOY
Freigeben: 2016-06-07 17:22:57
Original
1456 Leute haben es durchsucht

今天在Windows XP上安装Oracle 10g时,安装Oracle软件时没有出现问题,但是在DBCA建库的时候,出现了ldquo;ORA-12638:Credenti

今天在Windows XP上安装Oracle 10g时,安装Oracle软件时没有出现问题,但是在DBCA建库的时候,出现了“ORA-12638:Credential retrieval failed”错误。

原因是:Oracle不能应用操作系统认证而导致的。电脑的用户是域用户,可能是域用户没有走操作系统认证的权限。

解决方法:将sqlnet.ora文件里的SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉,或者将这个参数改为SQLNET.AUTHENTICATION_SERVICES= (NONE)。

NTS是Windows操作系统登录数据库的验证方式,SQLNET.AUTHENTICATION_SERVICES= (NTS)这个参数只对Windows系统有效,这个参数等于NTS,即可以用口令文件验证,又可以用操作系统验证的方式来登录Oracle数据库;这个参数等于NONE表示只允许使用口令文件验证的方式来登录数据库。而一般情况下域用户不能应用操作系统认证而身份证明检索失败。

Oracle登录认证有两种方式:

Oracle普通用户的密码是存在数据库的数据字典里,所以普通用户只有在数据库OPEN状态下才能登录数据库。但有两种用户可以在数据库没有打开的状态下登录数据库,这就是具有SYSDBA和SYSOPER权限的用户。这两种用户登录数据库有两种方式,操作系统(OS)认证和口令文件认证。用户到底采用哪种方式登录,取决于sqlnet.ora文件中的SQLNET.AUTHENTICATION_SERVICES参数。该参数的值设置为NTS,允许用户使用OS认证,此时用户可以不使用密码直接登录数据库,即“sqlplus / as sysdba”。该参数值为NONE,则关闭OS认证,此时用户只能通过口令文件认证的方式登录数据库。

用户能否通过口令文件验证成功登录数据库,受以下两个因素制约:

1、参数文件中的remote_login_passwordfile参数,该参数有以下3个值可以设子:

NONE:指示Oracle系统不使用口令文件,拥有SYS权限的用户通过OS认证的方式登录数据库。

EXCLUSIVE:指只有一个数据库实例可以使用此口令文件。只有在此设置下的口令文件可以包含除INTERNAL/SYS以外的用户信息,即允许将SYSDBA/SYSOPER权限授予除INTERNAL/SYS以外的其他用户。(10g和11g默认)

SHARED:指可有多个数据库实例使用此口令文件。在此设置下只有INTERNAL/SYS用户能被口令文件识别,,即使文件中存有其他用户的信息,也不允许他们一SYSDBA/SYSOPER的权限登录。

可以通过下面的命令查看remote_login_passwordfile的参数值:

SQL> show parameter remote_login_password

NAME                  TYPE      VALUE

------------------------------------ ----------- ----------------------

remote_login_passwordfile  string    EXCLUSIVE

可以通过查询V$PWFILE_USERS视图来查看拥有SYSDBA/SYSOPER权限的用户信息:

SQL> select * from v$pwfile_users;

USERNAME      SYSDB    SYSOP

------------------------  -----        -----

SYS              TRUE      TRUE

2、口令文件是否存在,密码是否正确。

在remote_login_passwordfile参数设置为EXCLUSIVE、SHARED的情况下,用有SYSDBA和SYSOPER权限的用户可以使用口令文件验证的方式登录数据库。Oracle搜索口令文件的次序为:

(1)、在系统注册库中查找ORA_SID_PWFILE参数值(它为口令文件的全路径名);

(2)、若未找到,则查找ORA_PWFILE参数值;

(3)、若仍未找到,则使用缺省值ORACLE_HOME\DATABASE\PWDSID.ORA;

linux

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage