要給某個用戶賦權限時發生的錯誤:
代碼如下 復制代碼 sys@ORCL>grant sysdba to sys;*
ERROR at line 1:
ORA-01994: GRANT 失敗: 口令文件缺失或已禁用
sys@ORCL>show parameters pass
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
sys@ORCL>SQL> !ls -l $ORACLE_HOME/dbs
total 52
-rw-rw—- 1 oracle oinstall 1552 Sep 21 15:46 hc_dbsid.dat
-rw-r—– 1 oracle oinstall 12920 May 3 2001 initdw.ora
-rw-r—– 1 oracle oinstall 8385 Sep 11 1998 init.ora
-rw-r—– 1 oracle oinstall 24 Jul 21 2009 lkDBSID
-rw-r—– 1 oracle oinstall 2560 Sep 21 16:26 orapwDBSID
-rw-r—– 1 oracle oinstall 10752 Sep 21 15:11 spfileDBSID.ora
可以看到口令文件時存在的,可是怎麼會發生 ORA-01994呢!!
遍尋不見結果,想起來,當初創建口令文件的時候,采用的是:
代碼如下 復制代碼orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID entries=10 force=y
而 $ORACLE_SID=DBSID
生成的是 orapwDBSID 文件。在linux系統上,文件區分大小寫的!!
代碼如下 復制代碼SQL> !mv orapwDBSID orapwdbsid
sys@ORCL>r
1* select * from v$pwfile_users
USERNAME SYSDBA SYSOPER SYSASM
------------ --------------- --------------- ---------------
SYS TRUE TRUE FALSE