Oracle 支援作業系統認證,讓已登入 OS 的用戶免密碼存取資料庫。本文深度解析伺服器端 OS 認證配置、遠程客戶端認證的安全風險、Oracle 9i 整合 Active Directory 的企業級增強,並提供完整配置步驟與最佳實務。
# 解析順序:TNSNAMES → ONAMES (建議改 LDAP) → HOSTNAME
NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)
# 認證服務:NONE=資料庫認證, NTS=OS 認證 (Windows), KERBEROS5 等
SQLNET.AUTHENTICATION_SERVICES = (NTS) -- Windows
# SQLNET.AUTHENTICATION_SERVICES = (KERBEROS5) -- Linux/Kerberos
| OS 群組 | Oracle 權限 | 適用場景 |
|---|---|---|
| ORA_DBA | SYSDBA | 單實例 DBA 免密管理 |
| ORA_SID_DBA | SYSDBA (特定 SID) | 多實例隔離授權 |
| ORA_OPER | SYSOPER | 啟停/備份/恢復操作 |
將 OS 用戶加入對應群組即獲得權限,無需資料庫帳號密碼。
# 方式 1
sqlplus "/ as sysdba"
# 方式 2
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
| 值 | 說明 | OS 認證相容性 |
|---|---|---|
| NONE (預設) | 不使用密碼檔,OS 特權用戶擁有 SYSDBA/SYSOPER | ✅ 完美支援 |
| EXCLUSIVE | 單實例專用密碼檔,可授權非 SYS 用戶 SYSDBA | ⚠️ 需密碼檔同步 |
| SHARED | 多實例共享密碼檔,僅 SYS 可獲 SYSDBA | ⚠️ 需密碼檔同步 |
建議:純 OS 認證環境設為 NONE。
-- 域用戶
CREATE USER "DOMAIN\username" IDENTIFIED EXTERNALLY;
GRANT CONNECT TO "DOMAIN\username";
-- 本地用戶
CREATE USER "HOSTNAME\username" IDENTIFIED EXTERNALLY;
GRANT CONNECT TO "HOSTNAME\username";
路徑:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
新增字串值:AUTH_PREFIX_DOMAIN = FALSE
效果:建立用戶時可省略網域名,直接 CREATE USER "username" IDENTIFIED EXTERNALLY。
init.ora 參數:OS_AUTHENT_PREFIX = "" (預設空,8i 前為 OPS$)
init.ora: REMOTE_OS_AUTHENT = TRUE
CREATE USER "zlzyk" IDENTIFIED EXTERNALLYZL、同名用戶 zyksqlplus /@db_str → 免密登入成功根因:Oracle 信任客戶端 OS 驗證,無法區分機器名 vs 網域名。
Oracle 強烈不建啟用遠程 OS 認證,安全隱患極大。生產環境應強制 REMOTE_OS_AUTHENT = FALSE (預設)。
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME_IDOSAUTH_X509_NAME = TRUE (類型 REG_EXPAND_SZ,預設 FALSE)| 場景 | 建議方案 | 關鍵配置 |
|---|---|---|
| 本機 DBA 管理 | OS 認證 (ORA_DBA/ORA_OPER) | SQLNET.AUTHENTICATION_SERVICES=(NTS), remote_login_passwordfile=NONE |
| 應用伺服器連線 | 資料庫認證 / Wallet / Kerberos | REMOTE_OS_AUTHENT=FALSE, 使用安全外部密碼儲存 |
| 企業級多資料庫 | Enterprise User Security + AD | OSAUTH_X509_NAME=TRUE, ESM 管理, 目錄服務同步 |
| 雲端/混合雲 | Oracle Cloud IAM / OCI Identity / Azure AD 整合 | 現代身分聯盟標準 (SAML/OIDC) |
Oracle 外部認證從「信任本機 OS」演進至「信任企業目錄服務」。伺服器端 OS 認證 適合 DBA 本機運維;遠程 OS 認證 因偽造風險被棄用;9i EUS/AD 整合 開啟了企業級 SSO 與集中授權新紀元。現代架構應採用標準身分聯盟 (SAML/OIDC/Kerberos) 與雲端 IAM 整合,構建零信任資料庫存取體系。配置時請遵循:最小權限、拒絕遠程 OS 認證、啟用審計、定期審查映射關係。