- 카테고리:
POLICY_REFERENCES¶
지정된 정책이 오브젝트에 할당된 각 오브젝트에 대한 행을 반환하거나 또는 지정된 오브젝트에 할당된 각 정책에 대한 행을 반환합니다.
참고 항목: POLICY_REFERENCES 뷰 (Account Usage 뷰)
구문¶
네트워크 정책 오브젝트에만 해당:
POLICY_REFERENCES( POLICY_NAME => '<string>' , POLICY_KIND => 'NETWORK_POLICY' )
기타 정책 오브젝트의 경우:
POLICY_REFERENCES( POLICY_NAME => '<string>' )
모든 정책 오브젝트의 경우:
POLICY_REFERENCES( REF_ENTITY_NAME => '<string>' , REF_ENTITY_DOMAIN => '<string>' )
인자¶
POLICY_NAME => 'string'
정책 이름을 지정합니다.
전체 정책 이름은 작은따옴표로 묶어야 합니다.
정책 이름이 대/소문자를 구분하거나 특수 문자나 공백이 포함된 경우, 대/소문자를 처리하려면 큰따옴표가 필요합니다. 큰따옴표는 작은따옴표로 묶어야 합니다(즉,
'"<정책_이름>"'
).
현재, Snowflake는 정책 이름을 인자로 지정할 때 다음 정책을 지원합니다.
POLICY_KIND => 'NETWORK_POLICY'
POLICY_NAME
값이 네트워크 정책인 경우에만 이 인자를 사용하십시오. 다른 종류의 정책 이름을 지정할 때는 이 인자를 사용하지 마십시오.REF_ENTITY_NAME => 'string'
정책이 설정된 오브젝트의 이름(예: 테이블 이름, 뷰 이름, 외부 테이블 이름 또는 사용자 이름)입니다.
전체 오브젝트 이름은 작은따옴표로 묶어야 합니다.
오브젝트 이름이 대/소문자를 구분하거나, 특수 문자 또는 공백을 포함하는 경우 대/소문자를 처리하려면 큰따옴표가 필요합니다. 큰따옴표는 작은따옴표로 묶어야 합니다(즉,
'"<작업_이름>"'
).
REF_ENTITY_DOMAIN => 'string'
정책이 설정된 오브젝트 유형입니다.
오브젝트가 외부 테이블인 경우,
'TABLE'
을 인자 값으로 사용합니다.오브젝트가 구체화된 뷰인 경우,
'VIEW'
를 인자 값으로 사용합니다.지원되는 도메인은 다음과 같습니다.
'ACCOUNT'
'INTEGRATION'
'TABLE'
'TAG'
'USER'
'VIEW'
반환¶
이 함수는 다음 열을 반환합니다.
열 |
데이터 타입 |
설명 |
---|---|---|
POLICY_DB |
VARCHAR |
정책이 설정된 데이터베이스입니다. |
POLICY_SCHEMA |
VARCHAR |
정책이 설정된 스키마입니다. |
POLICY_NAME |
VARCHAR |
정책의 이름입니다. |
POLICY_KIND |
VARCHAR(17) |
Snowflake의 정책 유형입니다. |
REF_DATABASE_NAME |
VARCHAR |
쿼리된 오브젝트가 참조하는 오브젝트를 포함하는 데이터베이스의 이름입니다. |
REF_SCHEMA_NAME |
VARCHAR |
쿼리된 오브젝트가 참조하는 오브젝트를 포함하는 스키마의 이름입니다. |
REF_ENTITY_NAME |
VARCHAR |
정책이 설정된 오브젝트의 이름(즉, 테이블_이름, 뷰_이름, 외부_테이블_이름)입니다. |
REF_ENTITY_DOMAIN |
VARCHAR |
정책이 설정된 오브젝트 유형(즉, 테이블, 뷰)입니다. |
REF_COLUMN_NAME |
VARCHAR |
정책이 설정된 열 이름입니다. |
REF_ARG_COLUMN_NAMES |
VARCHAR |
마스킹 정책이 설정된 쿼리 결과의 행에 대해 NULL을 반환합니다. |
TAG_DATABASE |
VARCHAR |
태그에 할당된 정책이 있는 태그를 포함하는 데이터베이스의 이름 또는 정책이 태그에 할당되지 않은 경우 NULL입니다. |
TAG_SCHEMA |
VARCHAR |
태그에 할당된 정책이 있는 태그를 포함하는 스키마의 이름 또는 정책이 태그에 할당되지 않은 경우 NULL입니다. |
TAG_NAME |
VARCHAR |
태그에 정책이 할당된 태그의 이름 또는 정책이 태그에 할당되지 않은 경우 NULL입니다. |
POLICY_STATUS |
VARCHAR |
|
POLICY_STATUS 열과 관련하여 다음을 참고하십시오.
ACTIVE
태그에 의해 열(즉, REF_COLUMN_NAME)이 단일 정책에만 연결되도록 지정합니다.
MULTIPLE_MASKING_POLICY_ASSIGNED_TO_THE_COLUMN
여러 마스킹 정책이 동일한 열에 할당되도록 지정합니다.
COLUMN_IS_MISSING_FOR_SECONDARY_ARG
정책(즉, POLICY_NAME)이 조건부 마스킹 정책이고 테이블(즉, REF_ENTITY_NAME)에 동일한 이름의 열이 없음을 지정합니다.
COLUMN_DATATYPE_MISMATCH_FOR_SECONDARY_ARG
정책이 조건부 마스킹 정책이고 테이블에 마스킹 정책 서명의 데이터 타입과 이름은 같지만 데이터 타입이 다른 열이 있음을 지정합니다.
사용법 노트¶
쿼리를 실행하는 역할에 부여된 권한에 따라 결과가 반환됩니다.
역할에 전역 APPLY MASKING POLICY 권한이 있는 경우 Snowflake는 쿼리 결과에 모든 마스킹 정책 연결을 반환합니다.
역할에 전역 APPLY ROW ACCESS POLICY 권한이 있는 경우 Snowflake는 쿼리 결과에 모든 행 액세스 정책 연결을 반환합니다.
주어진 정책에 대한 APPLY 권한이 역할에 있는 경우(예: MASKING POLICY에 대한 APPLY) Snowflake는 쿼리를 실행하는 역할이 소유한 오브젝트에 대해서만 해당 정책의 연결을 반환합니다.
역할에 전역 APPLY 권한 또는 정책에 대한 OWNERSHIP 권한이 있지만 테이블이나 뷰에 대한 OWNERSHIP이 없는 경우(예: 테이블에 대한 SELECT) Snowflake는 쿼리 결과에 정책 연결을 표시하지 않습니다.
역할에 정책 권한이 없지만 테이블에 대한 OWNERSHIP 권한이 있는 경우 Snowflake는 오류 메시지를 반환하고 정책 연결을 표시하지 않습니다.
Information Schema 테이블 함수를 호출할 때 세션에는 사용 중인 INFORMATION_SCHEMA 스키마가 있거나 또는 함수가 정규화된 오브젝트 이름을 사용해야 합니다. 자세한 내용은 Snowflake Information Schema 섹션을 참조하십시오.
쿼리를 실행할 구문 변형을 하나 선택하십시오. 인자를 혼합하면 오류 및 쿼리 실패가 발생합니다.
인자
ref_entity_name
및ref_entity_domain
은 함께 포함되어야 하며, 그렇지 않으면 쿼리가 실패합니다.지정된 오브젝트 이름이 존재하지 않거나 쿼리 연산자가 오브젝트에 대한 정책을 볼 권한이 없는 경우 Snowflake는 오류를 반환합니다. 연산자가 정책 연결의 하위 세트를 볼 수 있는 경우 Snowflake는 정책 연결의 결과 세트를 반환할 수 있습니다.
ref_entity_domain
으로 나열된 지원되지 않는 오브젝트 유형(예:'stream'
)도 오류를 반환합니다.쿼리 연산자에 정책에 대한 APPLY 또는 OWNERSHIP 권한이 없는 경우 Snowflake는 결과 세트를 반환하지 않습니다.
예¶
열에 ssn_mask
라는 마스킹 정책이 설정된 각 오브젝트(예: 테이블 또는 뷰)에 대한 행을 반환합니다.
use database my_db; use schema information_schema; select * from table(information_schema.policy_references(policy_name => 'my_db.my_schema.ssn_mask'));
my_table
이라는 테이블에 할당된 각 정책에 대한 행을 반환합니다.
use database my_db; use schema information_schema; select * from table(information_schema.policy_references(ref_entity_name => 'my_db.my_schema.my_table', ref_entity_domain => 'table'));