本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
通過波特格雷端口上的波斯特格雷SQL端點連接到巴貝爾魚 SQL
您也可以利用從TDS端口創建的組登錄通過 Postgre SQL 端口進行連接。若要透過 Postgre 連接SQL埠進行連線,您需要以 Postgre 用SQL戶端應用程式的格式<ad_username@FQDN>
指定 AD 使用者名稱。您不能使用該<DNS domain name\ad_username>
格式。
Postgre 默認情況下對SQL用戶名使用區分大小寫的比較。若要讓 Aurora Postgre SQL 將 Kerberos 使用者名稱解譯為不區分大小寫,您必須在自訂巴貝爾魚叢集參數群組中將 krb_caseins_users 參數設定為 true。依預設,此參數會設定為 false。如需詳細資訊,請參閱針對不區分大小寫的使用者名稱設定 Aurora PostgreSQL 資料庫叢集。
當 AD 使用者屬於多個群組時,T SQL 和 Postgre SQL 端點之間的行為差異
考慮 AD 用戶 user1 是兩個 AD 安全組 [公司\ 帳戶組] 和 [公司\ 銷售組] 的一部分,並且數據庫管理員已通過以下方式設置了用戶映射。
postgres=> select * from pgadmap_read_mapping();
ad_sid | pg_role | weight | ad_grp -------------+---------------------------------+--------+--------------- S-1-5-67-980 | accounts-group@CORP.EXAMPLE.COM | 7 | accounts-group S-1-2-34-560 | sales-group@CORP.EXAMPLE.COM | 10 | sales-group (2 rows)
如果使用者是從 T SQL 端點連線,則在授權期間,它將繼承所有相關聯 T-SQL 登入的權限。在這個例子中,user1 將繼承 T-SQL 組登錄和權重的權限聯集將被忽略。這與標準 T-SQL 行為內聯。
但是,如果同一個用戶從 Postgre SQL 端點連接,則它只能繼承一個權重最高的關聯 T SQL 登錄的權限。如果兩個 T-SQL 群組登入的權數相同,則 AD 使用者將繼承與最近新增之對應相對應的 T-SQL 登入權限。對於 PostgreSQL,建議指定反映單個數據庫角色的相對權限/權限的權重,以避免模糊。在下面的例子中,user1 通過PSQL端點連接,只繼承銷售組權限。
babelfish_db=> select session_user, current_user;
session_user | current_user ------------------------------+--------------------------- sales-group@CORP.EXAMPLE.COM | sales-group@CORP.EXAMPLE.COM (1 row)
babelfish_db=> select principal, gss_authenticated from pg_stat_gssapi where pid = pg_backend_pid();principal | gss_authenticated ------------------------+------------------- user1@CORP.EXAMPLE.COM | t (1 row)