介绍Oracle 19c上给SYSTEM用户赋予SYSDBA权限时出现ORA-01994时的对应方法。
GRANT SYSDBA TO SYSTEM
ORA-01994 password file missing or disabled
环境为如下。
- OS : RedHat Enterprise 7.6
- Oracle Version : Oracle 19c
- Oracle SID : ORCL
1. 重建密码文件
Oracle用户登录系统之后,重新创建Oracle密码文件,Oracle密码文件的默认路径为 $ORACLE_HOME/dbs/orapwORCL。
$ cd $ORACLE_HOME/dbs
$ ll orapwORCL
如果orapwORCL文件不存在时,Oracle用户登录系统后使用orapwd命令重建密码文件。
$ orapwd file=orapwORCL password=<SystemUserPassword> force=y
确认orapwORCL文件是否存在。
$ ll orapwORCL
如果orapwORCL文件不存在的话,touch命令创建空文件后,重新执行orapwd命令。
$ cd $ORACLE_HOME/dbs
$ touch orapwORCL
$ orapwd file=orapwORCL password=<SystemUserPassword> force=y
2. remote_login_passwordfile参数
当使用SYSTEM用户无法登录Oracle时,确认remote_login_passwordfile参数。该参数值为 exclusive或者shared时,用户才可以使用密码文件进行登录。
remote_login_passwordfile = none | exclusive | shared
- none : 不使用密码文件认证
- exclusive : 使用密码文件认证,只有当前实例使用该密码文件(默认值)
- shared :使用密码文件认证,多个实例dba用户共享密码文件
在这里介绍了发生ORA-01994错误时使用orapwd命令重建密码文件及控制密码文件认证的初始化remote_login_passwordfile。