PG_GET_SESSION_ROLES - Amazon Redshift

PG_GET_SESSION_ROLES

Devuelve los roles de sesión del usuario que ha iniciado sesión actualmente. Los roles de sesión de un usuario son los grupos definidos por un proveedor de identidades (IdP) para el usuario que ha iniciado sesión. Por ejemplo, un proveedor de identidades (IdP) como Microsoft Azure Active Directory (Azure AD) verifica la identidad del usuario y proporciona los grupos externos de los que forma parte el usuario durante el proceso de inicio de sesión del usuario. Estos grupos externos se transforman en roles de Amazon Redshift y están disponibles durante la sesión actual. Estos roles se denominan roles de sesión. Un administrador puede conceder privilegios a un rol de sesión similar a otros roles de Amazon Redshift. Para obtener información acerca del uso de roles, consulte Control de acceso basado en roles (RBAC). Para obtener información sobre la administración de identidades con un proveedor de identidades (IdP), consulte Federación de proveedor de identidades (IdP) nativo para Amazon Redshift en la Guía de administración de Amazon Redshift.

Para ver los roles definidos en el catálogo de Amazon Redshift, conéctese a la base de datos como administrador o superusuario y consulte la vista del sistema SVV_ROLES.

Sintaxis

pg_get_session_roles()

Tipo de retorno

Un conjunto de filas que consta de dos valores. El primer valor tiene dos partes separadas por dos puntos (:) que contiene un idp-namespace:role-name. idp-namespace es el espacio de nombres del proveedor de identidades (IdP). role-name es el nombre del grupo externo del proveedor de identidades (IdP). El segundo valor contiene un role-id que es el identificador del rol.

Notas de uso

La función PG_GET_SESSION_ROLES devuelve una fila por cada rol de sesión devuelto.

Ejemplos

El siguiente ejemplo devuelve una fila para cada rol del IdP de Azure Active Directory. Las columnas devueltas se convierten en sess_roles con columnas name y roleid. Cada name consta del espacio de nombres de Azure Active Directory y un nombre de grupo en 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

El siguiente ejemplo devuelve una fila para cada grupo de IAM del que es miembro el usuario de IAM que ha iniciado sesión actualmente. Las columnas devueltas se convierten en sess_roles con columnas name y roleid. Cada name consta del espacio de nombres de IAM y el nombre del grupo de IAM.

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