本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Active Directory 安全群組為 Babelfish 設定 Kerberos 驗證
從 Babelfish 4.2.0 版開始,您可以使用 Active Directory 安全群組為 Babelfish 設定 Kerberos 身分驗證。若要使用 Active Directory 設定 Kerberos 身分驗證,以下是要完成的先決條件:
-
您必須遵循使用 Babelfish 進行 Kerberos 身分驗證中提到的所有步驟。
-
確保資料庫執行個體與 Active Directory 相關聯。若要確認這一點,您可以在主控台中或執行 describe-db-instances AWS CLI 命令,來檢視網域成員資格狀態。
資料庫執行個體的狀態應為啟用 kerberos 的狀態。如需了解網域成員資格的詳細資訊,請參閱了解網域成員資格。
-
使用以下查詢驗證 NetBIOS 網域名稱與 DNS 網域名稱之間的對應:
SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping; -
繼續進行之前,請先驗證使用個別登入的 Kerberos 身分驗證是否如預期運作。以 Active Directory 使用者身分使用 Kerberos 身分驗證的連線應會成功。如果您遇到任何問題,請參閱常見錯誤。
設定 pg_ad_mapping 延伸模組
您必須遵循設定 pg_ad_mapping 延伸模組中提到的所有步驟。若要驗證是否已安裝延伸模組,請從 TDS 端點執行下列查詢:
1>SELECT extname, extversion FROM pg_extension where extname like 'pg_ad_mapping';2>GO extname extversion ------------- ---------- pg_ad_mapping 0.1 (1 rows affected)
管理群組登入
依照管理登入中所述步驟建立群組登入。我們建議登入名稱與 Active Directory (AD) 安全群組名稱應相同,以便輕鬆維護,但這不是強制性的。例如:
CREATE LOGIN [corp\accounts-group] FROM WINDOWS [WITH DEFAULT_DATABASE=database]
稽核和記錄
若要判斷 AD 安全主體身分,請使用下列命令:
1>select suser_name();2>GO suser_name ---------- corp\user1 (1 rows affected)
目前,日誌中看不到 AD 使用者身分。您可以開啟 log_connections 參數來記錄資料庫工作階段的建立。如需詳細資訊,請參閱 log_connections。如下列範例所示,輸出包含作為主體的 AD 使用者身分。與此輸出相關聯的後端 PID 可以協助將動作追溯至實際 AD 使用者。
bbf_group_ad_login@babelfish_db:[615]:LOG: connection authorized: user=bbf_group_ad_login database=babelfish_db application_name=sqlcmd GSS (authenticated=yes, encrypted=yes, principal=user1@CORP.EXAMPLE.COM)