| 維度 | 操作系統認證 | 口令文件認證 |
|---|---|---|
| 適用場景 | 本地登錄數據庫服務器 | 遠程網絡連接 |
| 典型命令 | sqlplus / as sysdba | sqlplus sys/pwd@sid as sysdba |
| 授權依據 | OS 群組成員身份 | 口令文件條目 |
| 優先級 | 高(優先生效) | 低 |
sqlnet.oraSQLNET.AUTHENTICATION_SERVICES = (NTS) -- 開啟 OS 認證
SQLNET.AUTHENTICATION_SERVICES = (NONE) -- 關閉 OS 認證,強制用戶/密碼
NTS 表示 Windows NT 安全機制;Linux/Unix 下對應 dba 群組。
remote_login_passwordfile (SPFILE/PFILE)| 值 | 含義 |
|---|---|
EXCLUSIVE | 單實例專用,允許 SYS 以外用戶被授權 |
SHARED | 多實例共享 (RAC/OPS),僅識別 SYS 用戶 |
NONE | 禁用口令文件,所有遠程 SYSDBA/SYSOPER 拒絕 |
註:兩套認證可同時啟用、同時關閉、或單獨啟用,互不衝突。
orapwd file=filename password=password entries=max_users
-- 參數說明:
-- file: 完整路徑+文件名(必填)
-- password: SYS/SYSDBA 密碼(必填)
-- entries: 最大不同用戶數(含 SYS),超限需重建
默認路徑:
Windows: %ORACLE_HOME%\database\PWD<SID>.ora
Linux/Unix: $ORACLE_HOME/dbs/orapw<SID>
非默認名稱/路徑將不被識別。
GRANT SYSDBA TO scott; — 自動寫入口令文件並同步密碼SELECT * FROM v$pwfile_users; — 顯示 USERNAME、SYSDBA、SYSOPER、SYSASM 權限標誌SQL> GRANT SYSDBA TO scott;
Grant succeeded.
SQL> SELECT * FROM v$pwfile_users;
USERNAME SYSDBA SYSOPER SYSASM
-------- ------ ------- ------
SYS TRUE TRUE FALSE
SCOTT TRUE FALSE FALSE
remote_login_passwordfile=EXCLUSIVE 並定期輪換口令文件密碼。dba/ORA_DBA 群組成員,實現最小權限原則。v$pwfile_users 變更,防止提權滯留。