SQL*Plus 連接數據庫時,以最高權限 SYSDBA/SYSOPER 登錄的正確語法、OS 驗證與密碼文件驗證機制、常見報錯原因與解決。
# 1. OS 驗證(當前 OS 用戶屬於 ORA_DBA/ORA_OPER 組)
sqlplus / AS SYSDBA
sqlplus / AS SYSOPER
# 2. 密碼文件驗證(遠程/非 OS 認證用戶)
sqlplus sys/password AS SYSDBA
sqlplus sys/password@TNS_ALIAS AS SYSDBA
# 3. 帶引號的完整語法(防止 Shell 特殊字符轉義)
sqlplus "sys/password AS SYSDBA"
sqlplus "/ AS SYSDBA"
| 模式 | 前提條件 | 適用場景 |
|---|---|---|
| OS Authentication | SQLNET.AUTHENTICATION_SERVICES = (NTS) (Windows) 或 (ALL) (Linux/Unix)OS 用戶在 ORA_DBA (SYSDBA) 或 ORA_OPER (SYSOPER) 組 | 本地管理員登錄、自動化腳本、Cron 任務 |
| Password File | ORAPWD FILE=$ORACLE_HOME/dbs/orapwSID ENTRIES=10 FORCE=YREMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE/SHARED | Data Guard、遠程管理、非 OS DBA 用戶、RAC |
ORA-01031: insufficient privilegesORA_DBA 組、sqlnet.ora 禁用 NTS、密碼文件不存在/條目不足。net localgroup ORA_DBA username /add (Windows) 或 usermod -aG dba oracle (Linux)。ORA-12560: TNS:protocol adapter error (Windows)ORACLE_SID 未設置/錯誤、嘗試連接遠程實例但未指定 @TNS。SET ORACLE_SID=ORCL → NET START OracleServiceORCL → SQLPLUS / AS SYSDBA。SP2-0306: Invalid option/ 或 AS。sqlplus "/ AS SYSDBA" (Linux) 或 sqlplus "sys/pwd AS SYSDBA"。ORA-28009: connection as SYS should be as SYSDBA or SYSOPERSEC_CASE_SENSITIVE_LOGON、密碼文件大小寫敏感、或嘗試 sqlplus sys/pwd 不帶 AS SYSDBA。AS SYSDBA 或 AS SYSOPER。sqlplus -S "/ AS SYSDBA" (-S 靜默模式,隱藏版權信息)。CP $ORACLE_HOME/dbs/orapw$ORACLE_SID /backup/。SYS 遠程密碼登錄(安全基線):SEC_MAX_FAILED_LOGIN_ATTEMPTS=3、SEC_PROTOCOL_ERROR_FURTHER_ACTION=DROP。sqlplus sys/pwd@NODE1_SID AS SYSDBA 指定實例,或使用 SRVCTL 管理。牢記 sqlplus "/ AS SYSDBA" 這一「萬能鑰匙」,配合 OS 認證與密碼文件雙軌制,隨時隨地掌控數據庫核心權限。