카테고리:

컨텍스트 함수 (일반)

IS_DATABASE_ROLE_ACTIVATED(SYS_CONTEXT 함수)

데이터베이스 역할이 현재 세션에서 활성화된 경우 VARCHAR 값 ``’TRUE’``를 반환합니다.

참고 항목:

SYS_CONTEXT(SNOWFLAKE$SESSION 네임스페이스) IS_ROLE_ACTIVATED(SYS_CONTEXT 함수)

구문

SYS_CONTEXT(
  'SNOWFLAKE$SESSION' ,
  'IS_DATABASE_ROLE_ACTIVATED' ,
  '<database_role>'
)
Copy

인자

'SNOWFLAKE$SESSION'

현재 세션에 대한 컨텍스트 정보를 반환하는 함수를 호출하도록 지정합니다.

'IS_DATABASE_ROLE_ACTIVATED'

IS_DATABASE_ROLE_ACTIVATED 함수를 호출합니다.

'database_role'

확인할 데이터베이스 역할을 지정합니다. 이름은 정규화된 이름이거나 상대 이름일 수 있습니다.

반환

이 함수는 다음 VARCHAR 값 중 하나를 반환합니다.

  • 현재 사용자의 활성 기본 역할 또는 세션의 보조 역할이 지정된 데이터베이스 역할의 권한을 상속하는 경우 ``’TRUE’``를 반환합니다.

  • 지정된 데이터베이스 역할이 사용자의 활성 역할 계층 구조에 없거나 데이터베이스 역할이 존재하지 않는 경우 ``’FALSE’``를 반환합니다.

이 반환 값을 BOOLEAN 값 TRUE 또는 FALSE와 비교하려면 반환 값을 :ref:`캐스트<label-data_type_explicit_casting>`하여 BOOLEAN로 반환합니다. 예:

SELECT SYS_CONTEXT('SNOWFLAKE$SESSION', 'IS_DATABASE_ROLE_ACTIVATED', 'my_db_role')::BOOLEAN = TRUE;
Copy

사용법 노트

  • 이 함수는 공유 테이블에 적용된 거버넌스 정책(예: 마스킹 정책, 행 액세스 정책 또는 프로젝션 정책)에서 지원되지 않습니다. 공유 오브젝트는 컨슈머 세션 상태에 액세스할 수 없습니다.

  • 정규화된 이름을 지정하지 않으면 함수는 다음과 같이 데이터베이스 역할의 데이터베이스 컨텍스트를 확인합니다.

    • 쿼리: 세션 데이터베이스(현재 사용 중인 데이터베이스).

    • 데이터 보호 정책의 본문: 보호된 테이블 또는 뷰가 포함된 데이터베이스.

    • 공유: 컨슈머 계정의 데이터베이스.

  • 이 함수는 결정적이지 않으므로 구체화된 뷰 정의에서 사용할 수 없습니다.

상대 이름을 사용하여 현재 데이터베이스의 데이터베이스 역할을 확인합니다.

SELECT SYS_CONTEXT('SNOWFLAKE$SESSION', 'IS_DATABASE_ROLE_ACTIVATED', 'ANALYST_ROLE');
Copy
+-------------------------------------------------------------------------+
| SYS_CONTEXT('SNOWFLAKE$SESSION', 'IS_DATABASE_ROLE_ACTIVATED', 'ANA...  |
+-------------------------------------------------------------------------+
| TRUE                                                                    |
+-------------------------------------------------------------------------+

정규화된 이름을 사용하여 다른 데이터베이스의 데이터베이스 역할을 확인합니다.

SELECT SYS_CONTEXT('SNOWFLAKE$SESSION', 'IS_DATABASE_ROLE_ACTIVATED', 'DB2.READER_ROLE');
Copy
+-------------------------------------------------------------------------+
| SYS_CONTEXT('SNOWFLAKE$SESSION', 'IS_DATABASE_ROLE_ACTIVATED', 'DB ...  |
+-------------------------------------------------------------------------+
| TRUE                                                                    |
+-------------------------------------------------------------------------+