PG_GET_SESSION_ROLES - Amazon Redshift

PG_GET_SESSION_ROLES

Retorna os perfis de sessão do usuário conectado no momento. Os perfis de sessão de um usuário são os grupos definidos por um provedor de identidades (IdP) para o usuário conectado. Por exemplo, um provedor de identidades (IdP) como Microsoft Azure Active Directory (Azure AD) verifica a identidade do usuário e fornece os grupos externos dos quais o usuário faz parte durante o processo de login do usuário. Esses grupos externos são transformados em perfis do Amazon Redshift e ficam disponíveis durante a sessão atual. Esses perfis são chamados de perfis de sessão. Um administrador pode conceder privilégios a um perfil de sessão semelhante a outros perfis do Amazon Redshift. Para obter mais informações sobre o uso de perfis, consulte Regras de controle de acesso com base em função (RBAC). Para obter informações sobre como gerenciar identidades com um provedor de identidades (IdP), consulte Federação de um provedor de identidades (IdP) nativo para o Amazon Redshift no Guia de gerenciamento do Amazon Redshift.

Para visualizar os perfis definidos no catálogo do Amazon Redshift, consulte a visualização do sistema SVV_ROLES.

Sintaxe

pg_get_session_roles()

Tipo de retorno

Um conjunto de linhas que consiste em dois valores. O primeiro valor tem duas partes separadas por dois-pontos (:) que contém um idp-namespace:role-name. O idp-namespace é o namespace do provedor de identidades (IdP). O role-name é o nome do grupo externo no provedor de identidades (IdP). O segundo valor contém um role-id, que é o identificador do perfil.

Observações de uso

A função PG_GET_SESSION_ROLES retorna uma linha para cada perfil de sessão retornado.

Exemplos

O exemplo a seguir retorna uma linha para cada perfil do IdP do Azure Active Directory. As colunas retornadas são transmitidas para sess_roles com colunas name e roleid. Cada name consiste no namespace do Azure Active Directory e em um nome de grupo no 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

O exemplo a seguir retorna uma linha para cada grupo do IAM do qual o usuário do IAM conectado no momento é membro. As colunas retornadas são transmitidas para sess_roles com colunas name e roleid. Cada name consiste no namespace do IAM e no nome do grupo do IAM.

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