PG_GET_SESSION_ROLES
返回当前登录的用户的会话角色。用户的会话角色是由身份提供者 (IdP) 为登录用户定义的组。例如,身份提供者 (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