本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Babelfish 的 Active Directory 安全群組設定 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 身分驗證是否如預期運作。使用 Kerberos 身分驗證做為 Active Directory 使用者的連線應該成功。如果您遇到任何問題,請參閱 常見錯誤。
設定 pg_ad_mapping 延伸模組
您必須遵循 設定 pg_ad_ 映射擴充功能 中提到的所有步驟。若要驗證是否已安裝延伸模組,請從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)