IS_GRANTED_TO_INVOKER_ROLE

IS_GRANTED_TO_INVOKER_ROLE (호출자 역할 부여 확인)

함수가 호출된 컨텍스트를 기준으로, INVOKER_ROLE 함수가 반환한 역할이 인자에 지정된 역할의 권한을 상속하는지 TRUE를 반환해요.

INVOKER_ROLE 함수는 SQL 문을 실행하는 객체의 계정 역할(account role)만 식별하여 반환해요. 데이터베이스 역할(database role)은 지원되지 않아요.

출처: Snowflake SQL Reference - IS_GRANTED_TO_INVOKER_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)