介绍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。