- 카테고리:
컨텍스트 함수 (세션 오브젝트)
IS_GRANTED_TO_INVOKER_ROLE¶
INVOKER_ROLE 함수에서 반환하는 역할이 함수가 호출되는 컨텍스트를 기반으로 인자에 지정된 역할의 권한을 상속하는 경우 TRUE를 반환합니다.
INVOKER_ROLE 함수는 SQL 문을 실행하는 오브젝트의 계정 역할만 식별하고 반환합니다. 데이터베이스 역할은 지원되지 않습니다.
- 참고 항목:
구문¶
IS_GRANTED_TO_INVOKER_ROLE( '<string_literal>' )
인자¶
'string_literal'
역할의 이름입니다.
사용법 노트¶
마스킹 정책 또는 행 액세스 정책 과 함께 IS_GRANTED_TO_INVOKER_ROLE 함수를 사용하는 경우, Snowflake 계정이 Enterprise Edition 이상인지 확인하십시오.
하나의 역할 이름만 인자로 전달할 수 있습니다.
다음 표에는 함수를 호출할 수 있는 컨텍스트와 Snowflake가 평가하는 역할 계층 구조가 요약되어 있습니다.
컨텍스트
평가되는 역할
사용자
테이블
CURRENT_ROLE.
뷰
뷰 소유자 역할.
UDF
UDF 소유자 역할입니다.
호출자의 권한이 있는 저장 프로시저
CURRENT_ROLE.
소유자의 권한이 있는 저장 프로시저
저장 프로시저 소유자 역할.
작업
작업 소유자 역할.
스트림
지정된 스트림 을 쿼리하는 역할입니다.
현재 세션의 역할 계층 구조를 평가하고 싶은 경우에는 IS_ROLE_IN_SESSION 을 대신 호출하십시오.
예¶
함수를 직접 호출합니다.
IS_GRANTED_TO_INVOKER_ROLE('ANALYST') --------------------------------------+ IS_GRANTED_TO_INVOKER_ROLE('ANALYST') | --------------------------------------+ TRUE | --------------------------------------+
마스킹 정책 본문에 함수를 지정합니다.
CREATE OR REPLACE MASKING POLICY mask_string AS
(val string) RETURNS string ->
CASE
WHEN IS_GRANTED_TO_INVOKER_ROLE('ANALYST') then val
ELSE '*******'
END;