카테고리:

컨텍스트 함수 (세션 오브젝트)

IS_GRANTED_TO_INVOKER_ROLE

INVOKER_ROLE 함수에서 반환하는 역할이 함수가 호출되는 컨텍스트를 기반으로 인자에 지정된 역할의 권한을 상속하는 경우 TRUE를 반환합니다.

INVOKER_ROLE 함수는 SQL 문을 실행하는 오브젝트의 계정 역할만 식별하고 반환합니다. 데이터베이스 역할은 지원되지 않습니다.

참고 항목:

IS_OBJECT

구문

IS_GRANTED_TO_INVOKER_ROLE( '<string_literal>' )
Copy

인자

'string_literal'

역할의 이름입니다.

사용법 노트

  • 마스킹 정책 또는 행 액세스 정책 과 함께 IS_GRANTED_TO_INVOKER_ROLE 함수를 사용하는 경우, Snowflake 계정이 Enterprise Edition 이상인지 확인하십시오.

  • 하나의 역할 이름만 인자로 전달할 수 있습니다.

  • 다음 표에는 함수를 호출할 수 있는 컨텍스트와 Snowflake가 평가하는 역할 계층 구조가 요약되어 있습니다.

    컨텍스트

    평가되는 역할

    사용자

    CURRENT_ROLE

    테이블

    CURRENT_ROLE.

    뷰 소유자 역할.

    UDF

    UDF 소유자 역할입니다.

    호출자의 권한이 있는 저장 프로시저

    CURRENT_ROLE.

    소유자의 권한이 있는 저장 프로시저

    저장 프로시저 소유자 역할.

    작업

    작업 소유자 역할.

    스트림

    지정된 스트림 을 쿼리하는 역할입니다.

  • 현재 세션의 역할 계층 구조를 평가하고 싶은 경우에는 IS_ROLE_IN_SESSION 을 대신 호출하십시오.

함수를 직접 호출합니다.

IS_GRANTED_TO_INVOKER_ROLE('ANALYST')

--------------------------------------+
IS_GRANTED_TO_INVOKER_ROLE('ANALYST') |
--------------------------------------+
                TRUE                  |
--------------------------------------+
Copy

마스킹 정책 본문에 함수를 지정합니다.

CREATE OR REPLACE MASKING POLICY mask_string AS
(val string) RETURNS string ->
CASE
  WHEN IS_GRANTED_TO_INVOKER_ROLE('ANALYST') then val
  ELSE '*******'
END;
Copy