NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)
# TNSNAMES: 本地 tnsnames.ora 解析
# ONAMES: Oracle Names Server (建議改用 LDAP)
# HOSTNAME: hosts/DNS/NIS 解析
SQLNET.AUTHENTICATION_SERVICES = (NTS)
# NTS = Windows 作業系統認證 (Kerberos/NTLM)
# NONE = 資料庫密碼認證
# 可並存:(NTS, NONE)
ORA_DBA 群組成員:免密碼以 SYSDBA 登入 (多實例可用 ORA__DBA )。ORA_OPER 群組成員:擁有 SYSOPER 權限。sqlplus "/ AS SYSDBA"
# 或
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
| 值 | 說明 |
|---|---|
| NONE (預設) | 不使用密碼檔,OS 認證特權用戶擁有 SYSDBA/SYSOPER |
| EXCLUSIVE | 單實例專用密碼檔,可授權非 SYS 用戶 SYSDBA/SYSOPER |
| SHARED | 多實例共享密碼檔,僅 SYS 享有特權 |
若需純 OS 認證,必須設為 NONE。
建立 IDENTIFIED EXTERNALLY 用戶:
CREATE USER "DOMAIN\USER" IDENTIFIED EXTERNALLY;
GRANT CONNECT TO "DOMAIN\USER";
Windows 註冊表 HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0 新增 AUTH_PREFIX_DOMAIN 字串值可控制域前置名稱處理。
用戶端 sqlnet.ora 同樣設定 SQLNET.AUTHENTICATION_SERVICES = (NTS),即可在無密碼情況下以當前 Windows 登入身份連線資料庫 (需資料庫端已建立對應 EXTERNALLY 用戶)。
SQLNET.AUTHENTICATION_SERVICES = (NTS, NONE) 兼容雙模式。ORA_DBA/ORA_OPER 群組成員,定期稽核。AUDIT SYS OPERATIONS) 記錄特權操作。EXCLUSIVE 模式並定期備份 orapw。外部認證將身份管理下沉至作業系統/目錄服務,減少密碼洩露風險、簡化單一登入 (SSO) 整合。但必須配合嚴格的 OS 層級存取控制與審計,才能真正落實最小權限原則。