PG_GET_SESSION_ROLES - Amazon Redshift

PG_GET_SESSION_ROLES

現在ログインしているユーザーのセッションロールを返します。ユーザーのセッションロールは、ログインしたユーザーの ID プロバイダー (IdP) によって定義されるグループです。例えば、Microsoft Azure Active Directory (Azure AD) のような ID プロバイダー (IdP) は、ユーザーの ID を検証し、そのユーザーが所属する外部グループをユーザーログインプロセス中に提供します。これらの外部グループは Amazon Redshift ロールに変換され、現在のセッション中に使用できます。これらのロールはセッションロールと呼ばれます。管理者は、他の Amazon Redshift ロールと同様の権限をセッションロールに付与できます。ロールの使用の詳細については、「ロールベースのアクセスコントロール (RBAC)」を参照してください。ID プロバイダー (IdP) による ID 管理の詳細については、「Amazon Redshift 管理ガイド」の「Amazon Redshift 用のネイティブ ID プロバイダー (IdP) フェデレーション」を参照してください。

Amazon Redshift カタログで定義されているロールを表示するには、システムビュー SVV_ROLES をクエリします。

構文

pg_get_session_roles()

戻り型

2 つの値で構成される行のセット。最初の値は 2 つの部分からなり、idp-namespace:role-name を含むコロン (:) で区切られます。idp-namespace は、ID プロバイダー (IdP) の名前空間です。role-name は、ID プロバイダー (IdP) の外部グループの名前です。2 番目の値には、ロール識別子である role-id が含まれます。

使用に関する注意事項

PG_GET_SESSION_ROLES 関数は、返されたセッションロールごとに 1 行を返します。

次の例では、Azure Active Directory IdP からロールごとに 1 つの行が返されます。返された列は、列 name および roleid と共に sess_roles にキャストされます。各 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 グループごとに 1 つの行が返されます。返された列は、列 name および roleid と共に sess_roles にキャストされます。各 name は、IAM 名前空間と IAM グループ名で構成されます。

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