PG_GET_SESSION_ROLES - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

PG_GET_SESSION_ROLES

傳回目前登入使用者的工作階段角色。使用者的工作階段角色是由身分提供者 (IdP) 為登入使用者定義的群組。例如,Microsoft Azure Active Directory (Azure AD) 等身分提供者 (IdP) 會驗證使用者的身分,並在使用者登入程序期間提供使用者所屬的任何外部群組。這些外部群組會轉換為 Amazon Redshift 角色,並可在目前的工作階段期間使用。這些角色稱為工作階段角色。管理員可以授與工作階段角色類似其他 Amazon Redshift 角色的權限。如需使用角色的詳細資訊,請參閱角色型存取控制 (RBAC)。如需使用身分提供者 (IdP) 管理身分的相關資訊,請參閱《Amazon Redshift 管理指南》中的適用於 Amazon Redshift 的原生身分提供者 (IdP) 聯合

若要檢視 Amazon Redshift 目錄中定義的角色,請查詢系統檢視 SVV_ROLES

語法

pg_get_session_roles()

傳回類型

由兩個值組成的一組列。第一個值有兩個部分,由冒號 (:) 分隔,其中包含 idp-namespace:role-nameidp-namespace 是身分提供者 (IdP) 的命名空間。role-name 是身分提供者 (IdP) 中外部群組的名稱。第二個值包含 role-id,這是角色識別碼。

使用須知

PG_GET_SESSION_ROLES 函數會針對每個傳回的工作階段角色傳回一列。

範例

下列範例會針對 Azure Active Directory IdP 中的每個角色傳回一個資料列。傳回的資料欄會轉換為 sess_roles,具有欄 nameroleid。每個 name 都包含 Azure Active Directory 命名空間和 Azure Active Directory 中的群組名稱。

SELECT * FROM pg_get_session_roles() AS sess_roles(name name, roleid integer); name roleid -------------------------------- my_aad:test_group_1 106204 my_aad:test_group_2 106205 my_aad:test_group_3 106206 my_aad:test_group_4 106207 my_aad:test_group_5 106208

下列範例會針對目前登入IAM使用者所屬的每個IAM群組傳回一列。傳回的資料欄會轉換為 sess_roles,具有欄 nameroleid。每個 都name包含IAM命名空間和IAM群組名稱。

SELECT * FROM pg_get_session_roles() AS sess_roles(name name, roleid integer); name roleid -------------------------------- IAM:myGroup 110332