1.1 现象描述
普通用户授予sysdba权限登录数据库失败,系统显示如下错误信息:
% sqlplus/@as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 26 14:28:11 2009
Copyright (c) 1982, 2008, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
但是以sysdba用户直接登录,系统提示如下信息:
% sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 26 14:28:35 2009
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
1.2 可能原因
Oracle初始化参数“REMOTE_LOGIN_PASSWORDFILE”设置为“NONE”,导致为普通用户授予SYSDBA权限登录失败。
1.3 定位思路
检查“REMOTE_LOGIN_PASSWORDFILE”的值。
SQL> show parameter password;
系统显示如下信息:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string NONE
由查询结果可知:“REMOTE_LOGIN_PASSWORDFILE”的值为“NONE”。
1.4 处理步骤
以oracle用户登录主机节点。
以sysdba用户连接数据库。
% sqlplus / as sysdba
在主机节点通过spfile文件创建pfile文件。
SQL> create pfile='/oracle/app/admin/ora11g/pfile/inittest.ora' from spfile;
创建成功,系统提示如下信息:
File created.
修改新创建的pfile中的参数。
5. .....
6. *.remote_login_passwordfile='none'
.....
将“remote_login_passwordfile”值修改为“exclusive”。
关闭数据库。
SQL> shutdown immediate
通过新创建的pfile文件启动数据库。
SQL> startup pfile='/oracle/app/admin/ora11g/pfile/inittest.ora'
通过pfile文件创建spfile文件。
SQL> create spfile from pfile;
退出数据库。
SQL> quit
以sqlplus用户重新登录数据库。
% sqlplus/@as sysdba
登录成功,系统显示如下信息:
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 26 14:28:35 2009
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
在备机节点执行与主机节点相同的操作。
1.5 参考信息
Oracle初始化参数“REMOTE_LOGIN_PASSWORDFILE”是设置Oracle数据库的密码验证方式。