Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章
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