PG_GET_SESSION_ROLES - Amazon Redshift

PG_GET_SESSION_ROLES

현재 로그인한 사용자의 세션 역할을 반환합니다. 사용자의 세션 역할은 로그인한 사용자에 대해 ID 제공업체(iDP)가 정의한 그룹입니다. 예를 들어 Microsoft Azure Active Directory(Azure AD)와 같은 ID 제공업체(idP)는 사용자 로그인 프로세스 중에 사용자의 신원을 확인하고 사용자가 속한 모든 외부 그룹을 제공합니다. 이러한 외부 그룹은 Amazon Redshift 역할로 변환되며 현재 세션 중에 사용할 수 있습니다. 이러한 역할을 세션 역할이라고 합니다. 관리자는 다른 Amazon Redshift 역할과 유사하게 세션 역할에 권한을 부여할 수 있습니다. 역할 사용에 대한 자세한 내용은 역할 기반 액세스 제어(RBAC)를 참조하세요. ID 제공업체(iDP)로 ID를 관리하는 방법에 대한 자세한 내용은 Amazon Redshift 관리 가이드에서 Amazon Redshift용 기본 IdP(ID 공급자) 페더레이션을 참조하세요

Amazon Redshift 카탈로그에 정의된 역할을 보려면 SVV_ROLES 시스템 뷰를 쿼리합니다.

구문

pg_get_session_roles()

반환 타입

두 개의 값으로 구성된 행 집합입니다. 첫 번째 값은 콜론(:)으로 구분된 두 부분으로 구성되며, 이 두 부분에는 idp-namespace:role-name이 포함되어 있습니다. idp-namespace는 ID 제공업체(iDP)의 네임스페이스입니다. role-name은 ID 제공업체(iDP)의 외부 그룹 이름입니다. 두 번째 값에는 역할 식별자인 role-id가 포함됩니다.

사용 노트

PG_GET_SESSION_ROLES 함수는 반환된 각 세션 역할에 대해 하나의 행을 반환합니다.

예시

다음 예에서는 Azure Active Directory IdP에서 각 역할에 대해 하나의 행을 반환합니다. 반환된 열은 열 nameroleid를 사용하여 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 그룹에 대해 하나의 행을 반환합니다. 반환된 열은 열 nameroleid를 사용하여 sess_roles로 캐스팅됩니다. 각 name은 IAM 네임스페이스 및 IAM 그룹 이름으로 구성됩니다.

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