- 카테고리:
CURRENT_AVAILABLE_ROLES¶
현재 사용자에게 부여된 모든 계정 수준 역할을 나열하는 문자열(VARCHAR)을 반환합니다.
반환된 문자열에는 사용자가 사용자 세션에서 활성화할 수 있는 모든 역할의 JSON 인코딩 목록이 포함됩니다(USE ROLE 또는 USE SECONDARY ROLES 문 사용).
목록에는 사용자에게 직접 부여된 모든 역할, 그리고 이러한 역할의 계층 구조 내 더 낮은 모든 역할이 포함됩니다. 반환된 값은 사용 가능한 모든 역할 목록이 포함된 VARIANT를 가져오기 위해 PARSE_JSON 함수에 전달될 수 있습니다.
구문¶
CURRENT_AVAILABLE_ROLES()
사용법 노트¶
이 함수는 사용자가 쿼리할 때만 계정 수준 역할 목록을 반환합니다. 활성 사용자가 없는 서비스를 사용하여 함수를 쿼리하면 쿼리가 실패할 수 있습니다. 예를 들어, 함수는 작업 내에서 쿼리할 때 역할 목록을 반환하지 않습니다. 사용자와 연결되지 않은 시스템 서비스에 의해 작업 실행이 실행되기 때문입니다. 이 경우, 쿼리 계획을 완료할 수 없기 때문에 쿼리 시간이 초과될 수 있습니다.
이 함수는 데이터베이스 역할의 이름을 반환하지 않습니다.
이 함수는 세션에서 역할 활성화를 설명해주지 않습니다.
예를 들어, 마스킹 정책 또는 행 액세스 정책 의 조건에서 이 함수를 지정하면 정책으로 인해 우연히 액세스가 제한될 수 있습니다.
정책 조건에서 역할 활성화 및 역할 계층 구조가 필요한 경우 IS_ROLE_IN_SESSION 을 사용합니다.
예¶
현재 사용자에게 부여된 역할 목록을 반환합니다.
SELECT CURRENT_AVAILABLE_ROLES(); +----------------------------------------------------------+ | ROW | CURRENT_AVAILABLE_ROLES() | +-----+----------------------------------------------------+ | 1 | [ "PUBLIC", "ANALYST", "DATA_ADMIN", "DATA_USER" ] | +-----+----------------------------------------------------+
PARSE_JSON 함수를 사용하여 VARIANT를 반환하고 FLATTEN 함수를 사용하여 각 역할에 대해 단일 행을 가져옵니다.
SELECT INDEX,VALUE,THIS FROM TABLE(FLATTEN(input => PARSE_JSON(CURRENT_AVAILABLE_ROLES()))); +-----+-------+------------------------+---------------------------+ | ROW | INDEX | VALUE | THIS | +-----+-------+------------------------+---------------------------+ | 1 | 0 | "PUBLIC" | [ | | | | | "PUBLIC", | | | | | "ANALYST", | | | | | "DATA_ADMIN", | | | | | "DATA_USER" | | | | | ] | +-----+-------+------------------------+---------------------------+ | 2 | 1 | "ANALYST" | [ | | | | | "PUBLIC", | | | | | "ANALYST", | | | | | "DATA_ADMIN", | | | | | "DATA_USER" | | | | | ] | +-----+-------+------------------------+---------------------------+ | 3 | 2 | "DATA_ADMIN" | [ | | | | | "PUBLIC", | | | | | "ANALYST", | | | | | "DATA_ADMIN", | | | | | "DATA_USER" | | | | | ] | +-----+-------+------------------------+---------------------------+ | 4 | 3 | "DATA_USER" | [ | | | | | "PUBLIC", | | | | | "ANALYST", | | | | | "DATA_ADMIN", | | | | | "DATA_USER" | | | | | ] | +-----+-------+------------------------+---------------------------+