1.问题现象
sqlplus / as sysdba登录数据库报错ora-01017
2.问题排查解决过程
2.1 sqlplus sys/密码 as sysdba登录数据库,如果可以正常登录,只需要修改sqlnet.ora文件中的
SQLNET.AUTHENTICATION_SERVICES = (NTS)
2.2 如果忘记了管理员密码可以通过以下语句修改管理员默认密码
windows通过cmd窗口执行以下命令:
orapwd file=D:\WINDOWS.X64_193000_db_home\database\PWDWMSDB.ora password=Passw0rd! entries=10 force=y
重启数据库后即可生效
3.理论知识补充
3.1.sqlplus有几种登陆方式
比如:
3.1.1C: > sqlplus "/as sysdba" --以操作系统权限认证的oracle sys管理员登陆
对应参数为REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
3.1.2.C: > sqlplus /nolog --不在cmd或者terminal当中暴露密码的登陆方式 SQL> conn /as sysdba & SQL> conn sys/password as sysdba
3.1.3.C: > sqlplus scott/tiger --非管理员用户登陆
3.1.4.C: > sqlplus scott/tiger@orcl --非管理员用户使用tns别名登陆
3.1.5.C: > sqlplus sys/password@orcl as sysdba --管理员用户使用tns别名登陆
3.1.6.C: > sqlplus --不显露密码的登陆方式 Enter user-name:sys Enter password:password as sysdba --以sys用户登陆的话 必须要加上 as sysdba 子句
3.2 密码文件,是仅用来限制具有sysdba或者sysoper权限的用户以远程的方式连接数据库的密码校验文件。如果不存在密码文件或者密码文件丢失,那么以sysdba或者sysoper权限的用户将无法登陆并返回错误:ERROR:
ORA-01031: insufficient privileges
3.3 REMOTE_LOGIN_PASSWORDFILE参数是对密码文件使用的限定,下面就对REMOTE_LOGIN_PASSWORDFILE参数的各项参数进行探讨
REMOTE_LOGIN_PASSWORDFILE = NONE
当REMOTE_LOGIN_PASSWORDFILE参数为NONE时,密码文件被禁用,用户无法以管理员级别用户远程登录到数据库
REMOTE_LOGIN_PASSWORDFILE =EXCLUSIVE是默认值。