本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PG_GET_SESSION_ROLES
傳回目前登入使用者的工作階段角色。使用者的工作階段角色是由身分提供者 (IdP) 為登入使用者定義的群組。例如,Microsoft Azure Active Directory (Azure AD)
若要檢視 Amazon Redshift 目錄中定義的角色,請查詢系統檢視 SVV_ROLES。
語法
pg_get_session_roles()
傳回類型
由兩個值組成的一組列。第一個值有兩個部分,由冒號 (:) 分隔,其中包含 idp-namespace:role-name
。idp-namespace
是身分提供者 (IdP) 的命名空間。role-name
是身分提供者 (IdP) 中外部群組的名稱。第二個值包含 role-id
,這是角色識別碼。
使用須知
PG_GET_SESSION_ROLES
函數會針對每個傳回的工作階段角色傳回一列。
範例
下列範例會針對 Azure Active Directory IdP 中的每個角色傳回一個資料列。傳回的資料欄會轉換為 sess_roles
,具有欄 name
和 roleid
。每個 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
,具有欄 name
和 roleid
。每個 都name
包含IAM命名空間和IAM群組名稱。
SELECT * FROM pg_get_session_roles() AS sess_roles(name name, roleid integer);
name roleid -------------------------------- IAM:myGroup 110332