練習環境誤刪 $ORACLE_HOME/dbs/orapw<SID> 導致 ORA-01031: insufficient privileges、ORA-01994: password file missing,無法以 SYSDBA 登入。記錄完整重建步驟與 11g/12c 參數差異。
sqlplus sys/manager@55 as sysdba
ERROR: ORA-01031: insufficient privileges
SQL> grant sysdba to sys;
ORA-01994: GRANT failed: password file missing or disabled
orapwd:orapwd file=$ORACLE_HOME/dbs/orapwORCL password=oracle entries=10 force=y
file:口令文件完整路徑(慣例 orapw<SID>)。password:SYS 密碼(不寫會交互提示)。entries:最大特權用戶數(預估略大)。force=y:覆蓋既有文件。ignorecase=y(可選):密碼大小寫不敏感(11g 新增)。sqlplus / as sysdba
SQL> SELECT * FROM v$pwfile_users;
輸出應顯示 SYS TRUE TRUE FALSE。
| 參數 | 11g | 12c 新增/變更 |
|---|---|---|
| FILE | 必填 | 同 |
| PASSWORD | 交互/指定 | 同 |
| ENTRIES | 可選 | 同 |
| FORCE | Y/N | y/n |
| IGNORECASE | Y/N | 同 |
| NOSYSDBA | Y/N (DV) | 同 |
| ASM | - | y/n:建立 ASM 口令文件於磁碟組 |
| DBUNIQUENAME | - | 資料庫唯一名(ASM 存放時必填) |
| FORMAT | - | 12 (預設, 支援 SYSBACKUP/SYSDG/SYSKM) / legacy |
| SYSBACKUP/SYSDG/SYSKM | - | y/n:建立對應管理權限條目 |
| DELETE | - | y/n:刪除指定口令文件 |
| INPUT_FILE | - | 遷移舊格式至 12c 格式 |
| DESCRIBE | - | 顯示文件屬性 (FORMAT/IGNORECASE) |
# 11g 簡單重建
orapwd file=orapwORCL password=oracle entries=30 force=y
# 12c 建立支援新權限的文件
orapwd file=orapwORCL format=12 sysbackup=y sysdg=y syskm=y force=y
file=xxx 而非 file = xxx)。DBUNIQUENAME。