sqlplus / as sysdba登录数据库报错ora-01017解决办法

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是默认值。

相关推荐
xxjj998a11 小时前
Laravel6.x核心特性全解析
数据库·mysql·adb
Irene199113 小时前
Oracle:为什么 ORDER BY 能让 SUM() 变成累计?
oracle
m0_7485548118 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
早日退休!!!19 小时前
《数据结构选型指南》笔记
数据结构·数据库·oracle
xcLeigh19 小时前
KES数据库性能优化实战
数据库·sql·性能优化·sql优化·数据性能
阿正呀19 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
yoyo_zzm19 小时前
Laravel9.x新特性全解析
数据库·mysql·nginx
2501_9012005319 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
m0_4954964120 小时前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python
forEverPlume21 小时前
PHP怎么使用Eloquent Attribute Composition属性组合_Laravel通过组合构建复杂属性【方法】
jvm·数据库·python