概述
首先ORA-01017错误的基本含义如下:
$ oerr ora 1017
01017, 00000, “invalid username/password; logon denied”
// *Cause:
// *Action:
即用户名/口令无效从而登录被拒绝,一般的解决方法为修改密码,用正确的密码登录。
如:用系统用户登录系统,修改用户的密码。
sqlplus / as sysdba
alter user identified by ;
除了一般的情况外,在数据库登录时还会有很多情况也报这个错误,本文将介绍对于ORA-01017错误问题的基本对应思路和一些典型的案例。
解决ORA-01017错误的基本思路
解决ORA-01017错误的基本思路如下:
・用户名和密码是否是真的正确
・注意用户的特点,如是否是特权用户或一些特殊性
・注意数据库的版本,是否是由于某些版本的新特性导致的无法登录
・查看是否使用了Listener监听登陆,在BEQ登陆的方式下是否有同样的问题
・确认验证密码时使用的是数据库中存储的密码还是密码文件(password file)中的密码
・查看网络相关的配置文件sqlnet.ora、listener.ora、tnsnames.ora的配置
・查看告警日志alert和trace中,发生问题时是否有其他的错误或异常发生
・通过设定errorstack来进一步查看问题发生时的详细信息,诊断由于Bug等导致的问题
一般需要查看的文件和信息
我们可以通过取得下面的信息,来确认相关的设定:
・以下视图的内容
select * from v$pwfile_users;
select * from dba_profiles;
select * from dba_users order by username;
・相关初期化参数的设定
show parameter sec_case_sensitive_logon
show parameter remote
・服务器和客户端的下列文件
$ORACLE_HOME/network/admin
sqlnet.ora、listener.ora、tnsnames.ora
・服务器环境的设定情况
SQL> conn /as sysdba
SQL> ho set
・设定errorstack来进一步查看问题发生时的详细信息
例:
SQL> conn /as sysdba
SQL> set time on
SQL> alter system set events ‘1017 trace name errorstack level 3’;
SQL