首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 資料庫外部身分驗證完整指南:從作業系統認證到 9i 增強功能

     編輯:Oracle 資料庫基礎

一、伺服器端使用作業系統驗證

1. 設定 SQLNET.ORA

  • NAMES.DIRECTORY_PATH:指定連線解析方式(TNSNAMES、ONAMES、HOSTNAME)。
  • SQLNET.AUTHENTICATION_SERVICES:設定驗證方式,NONE 為資料庫驗證,NTS 為作業系統驗證,兩者可並存。

2. 建立作業系統群組與使用者

  • ORA_DBA 群組成員免帳密登入,擁有 SYSDBA 權限(多實例可用 ORA_SID_DBA)。
  • ORA_OPER 群組成員擁有 SYSOPER 權限。

3. 登入方式

C:\> sqlplus "/ as sysdba"
-- 或
C:\> sqlplus /nolog
SQL> connect / as sysdba

4. Remote_Login_Passwordfile 參數影響

值說明
NONE預設,不使用密碼檔,OS 驗證的特權用戶擁有 SYSDBA/SYSOPER
EXCLUSIVE單一實例使用密碼檔,可將 SYSDBA/SYSOPER 授予非 SYS 使用者
SHARED多實例共用密碼檔,不得授予非 SYS 使用者

若採用 OS 驗證登入,應設定為 NONE。

5. 非特權群組使用者的建立

需在 Oracle 建立同名使用者(域用戶格式 domain\user,本機用戶格式 computer\user):

CREATE USER "domain\user" IDENTIFIED EXTERNALLY;
GRANT CONNECT TO "domain\user";

Windows 註冊表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 新增 AUTH_PREFIX_DOMAIN=FALSE 可忽略域名。OS_AUTHENT_PREFIX 參數控制前綴(預設空值,8i 前為 OPS$)。

二、遠端客戶端使用作業系統驗證(不建議)

需在 init.ora 設定 REMOTE_OS_AUTHENT=TRUE。但 Oracle 不建議此做法,因客戶端驗證使用本機 OS,易遭偽造機器名/用戶名欺騙,安全風險極高。

三、Oracle 9i 對 OS 身分認證的增強

  • 整合 Active Directory,透過 Enterprise Security Manager 管理權限。
  • 支援 Enterprise User Authentication(全域使用者驗證),屬集中式外部認證模式,優於舊有的 External User Authentication(僅客戶端本地認證)。
  • 需在 Win2000+ 域環境,註冊表設定 OSAUTH_X509_NAME=TRUE(類型 REG_EXPAND_SZ),NT 4.0 不支援。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved