IS_GRANTED_TO_INVOKER_ROLE
IS_GRANTED_TO_INVOKER_ROLE (호출자 역할 부여 확인)
함수가 호출된 컨텍스트를 기준으로, INVOKER_ROLE 함수가 반환한 역할이 인자에 지정된 역할의 권한을 상속하는지 TRUE를 반환해요.
INVOKER_ROLE 함수는 SQL 문을 실행하는 객체의 계정 역할(account role)만 식별하여 반환해요. 데이터베이스 역할(database role)은 지원되지 않아요.
본문
구문 (Syntax)
IS_GRANTED_TO_INVOKER_ROLE( '<string_literal>' )
인자 (Arguments)
'string_literal'
역할의 이름이에요.
사용 참고 사항 (Usage notes)
- 마스킹 정책이나 행 접근 정책과 함께 IS_GRANTED_TO_INVOKER_ROLE 함수를 사용하려면 Snowflake 계정이 Enterprise Edition 이상인지 확인하세요.
- 한 번에 하나의 역할 이름만 인자로 전달할 수 있어요.
- 다음 표는 함수를 호출할 수 있는 컨텍스트와 Snowflake가 평가하는 역할 계층을 요약해요. 컨텍스트 / 평가되는 역할: 사용자(User): CURRENT_ROLE. 테이블(Table): CURRENT_ROLE. 뷰(View): 뷰 소유자 역할. UDF: UDF 소유자 역할. Caller's rights 저장 프로시저: CURRENT_ROLE. Owner's rights 저장 프로시저: 저장 프로시저 소유자 역할. Task: 태스크 소유자 역할. Stream: 주어진 스트림을 쿼리하는 역할.
- 현재 세션에 대한 역할 계층을 평가하려면 IS_ROLE_IN_SESSION을 대신 호출하세요.
예시 (Examples)
함수를 직접 호출:
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;
더 알아보기 (Learn more)
- Context functions — 컨텍스트 함수 모음
- IS_ROLE_IN_SESSION — 세션 내 역할 확인
- INVOKER_ROLE — 호출자 역할 반환