- 카테고리:
컨텍스트 함수 (세션 오브젝트)
IS_ORGANIZATION_USER_GROUP_IN_SESSION¶
조직 사용자 그룹 에서 역할을 가져왔다고 가정하고 해당 역할이 세션에 대한 사용자의 활성 기본 역할 계층 구조에 있는지 또는 보조 역할 계층 구조에 있는지 확인합니다.
이 함수는 지정된 역할이 조직 사용자 그룹에 연결되어 있지 않은 경우 FALSE 를 반환합니다.
- 참고 항목:
구문¶
IS_ORGANIZATION_USER_GROUP_IN_SESSION( '<string_literal>' )
인자¶
'string_literal'
역할의 이름입니다.
반환¶
TRUE
현재 사용자의 활성 기본 역할 또는 세션의 보조 역할 이 지정 역할의 권한을 상속합니다.
DEFAULT_SECONDARY_ROLES
값이ALL
일 때, 사용자에게 부여된 모든 역할이 지정 역할의 권한을 상속합니다.지정된 역할은 현재 기본 역할 또는 보조 역할(즉, 각각 CURRENT_ROLE 또는 CURRENT_SECONDARY_ROLES 에 의해 반환된 역할)이거나 역할 계층 구조의 모든 하위 역할일 수 있습니다.
FALSE
다음 중 하나:
지정한 역할은 조직 사용자 그룹에 연결되지 않은 로컬 역할입니다.
지정 역할이 현재 기본 또는 보조 역할의 역할 계층 구조에서 더 높거나 역할 계층 구조에 전혀 없습니다.
NULL
데이터 공유 컨슈머 계정에서, 이 함수는 마스킹 정책 조건에서와 같이 공유 오브젝트(예: 보안 UDF 또는 보안 뷰)를 참조하는 경우 NULL을 반환합니다. 이 동작은 데이터 공유 컨슈머 계정에서 역할 계층 구조가 노출되는 것을 방지합니다.
사용법 노트¶
IS_ORGANIZATION_USER_GROUP_IN_SESSION 함수는 IS_DATABASE_ROLE_IN_SESSION 및 IS_ROLE_IN_SESSION 함수와 유사합니다. 다음 사용법 노트는 이러한 모든 컨텍스트 기능에 적용됩니다.
한 개의 구문을 사용합니다.
이름 구문:
하나의 역할 이름만 인자로 전달할 수 있습니다.
인자는 문자열이어야 하며 Snowflake에 역할이 저장되는 방식과 동일한 대/소문자를 사용해야 합니다. 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
열 구문:
하나의 열만 인자로 전달할 수 있습니다.
열에는 STRING 데이터 타입이 있어야 합니다.
열을 다음 중 하나로 지정합니다.
column_name
table_name.column_name
schema_name.table_name.column_name
database_name.schema_name.table_name.column_name
가상 열:
테이블에 저장되는 계산된 값이 아닌 식에서 계산된 값의 결과를 포함하는 가상 열은 지원되지 않습니다.
SELECT IS_ROLE_IN_SESSION(UPPER(authz_role)) FROM t1;
식에 열 이름의 별칭이 있을 때만 가상 열이 지원됩니다.
CREATE VIEW v2 AS SELECT authz_role, UPPER(authz_role) AS upper_authz_role FROM t2; SELECT IS_ROLE_IN_SESSION(upper_authz_role) FROM v2;
정책:
마스킹 정책 또는 행 액세스 정책 과 함께 이러한 함수를 사용하는 경우, Snowflake 계정이 Enterprise Edition 이상인지 확인하십시오.
정책 조건에서 역할 계층 구조와 상속된 권한을 평가해야 할 때는 이 함수를 사용하는 것이 좋습니다.
결과 캐시:
마스킹 정책이나 행 액세스 정책에서 이 함수를 사용하고 정책이나 정책으로 보호되는 테이블 또는 열 중 어떤 것도 이전 쿼리에서 변경되지 않은 경우 RESULT_SCAN 함수를 사용하여 보호된 테이블에 대한 쿼리 결과를 반환할 수 있습니다. 결과 캐시는 리터럴이 아닌 구문을 사용할 때만 적용됩니다.
이러한 함수는 확정적이지 않고 Snowflake가 구체화할 데이터를 결정할 수 없으므로 구체화된 뷰 정의에서 함수를 사용할 수 없습니다.
예¶
다음 내용이 참일 경우 TRUE 를 반환하는 예입니다.
조직 사용자 그룹이 계정에 추가될 때
analyst
역할이 만들어지거나 연결되었습니다.analyst
역할에 부여된 권한은 세션의 현재 역할에 의해 상속됩니다.
SELECT IS_ORGANIZATION_USER_GROUP_IN_SESSION('ANALYST');