오브젝트 태그 지정

이 항목에서는 Snowflake에서 태그를 사용하는 방법에 대한 개념과 지침을 제공합니다.

태그와 함께 마스킹 정책을 사용하는 방법에 대해 자세히 알아보려면 태그 기반 마스킹 정책 섹션을 참조하십시오.

이 항목의 내용:

태그란 무엇입니까?

태그를 사용하면 데이터 관리자는 중앙 집중식 또는 분산형 데이터 거버넌스 관리 방식으로 규정 준수, 검색, 보호 및 리소스 사용의 사용 사례를 위해 민감한 데이터를 추적할 수 있습니다.

태그는 다른 Snowflake 오브젝트에 할당할 수 있는 스키마 수준 오브젝트입니다. 태그를 Snowflake 오브젝트에 할당할 때 태그에 임의의 문자열 값을 할당할 수 있습니다. Snowflake는 태그 및 해당 문자열 값을 키-값 페어로 저장합니다. 태그는 스키마에 고유하며 태그 값은 항상 문자열이어야 합니다.

CREATE TAG 문을 사용하여 태그를 만들고 태그를 오브젝트에 할당할 때 태그 문자열 값을 지정합니다. 태그가 이미 존재한다고 가정하고 CREATE <오브젝트> 문을 사용하여 오브젝트를 만드는 동안 오브젝트에 태그를 할당할 수 있습니다. 또는 ALTER <오브젝트> 문을 사용하여 기존 오브젝트에 태그를 할당할 수 있습니다.

동시에 단일 태그를 다른 오브젝트 타입에 할당할 수 있습니다(예: 웨어하우스 및 테이블에 동시에). 할당할 때 태그 문자열 값은 중복되거나 고유할 수 있습니다. 예를 들어, 여러 테이블을 cost_center 태그에 할당할 수 있으며 태그의 문자열 값이 항상 sales일 수 있습니다. 아니면, 문자열 값이 다를 수 있습니다(예: engineering, marketing, finance). 태그를 정의하고 태그를 Snowflake 오브젝트에 연결한 후에는 태그를 쿼리하여 오브젝트에서의 태그 사용을 추적함으로써 추적, 감사 및 보고 등 데이터 거버넌스 작업을 간소화할 수 있습니다.

태그는 테이블, 뷰 및 열에 할당할 수 있으므로, 태그를 설정한 후 태그를 쿼리하면 민감한 정보가 포함된 여러 데이터베이스 오브젝트 및 열을 검색할 수 있습니다. 검색할 때 데이터 관리자는 행 액세스 정책 을 사용한 선택적 필터링 또는 데이터 토큰화, 완전 마스킹, 부분 마스킹 또는 마스킹 미수행을 결정하기 위한 마스킹 정책 사용과 같이 데이터를 가장 잘 활용할 수 있는 방법을 결정할 수 있습니다.

웨어하우스에 태그를 지정하면 리소스 사용을 정확하게 추적할 수 있습니다. 리소스에 대한 태그를 쿼리하면 비용 센터 또는 기타 조직 단위를 기준으로 편리하게 리소스를 그룹화할 수 있습니다. 또한, 태그를 사용하면 프로젝트와 같이 상대적으로 단기간의 비즈니스 활동을 편리하게 분석하여 어떤 리소스가 언제 어떻게 사용되었는지에 대한 세부적인 정보를 얻을 수 있습니다.

오브젝트 및 열에 대한 태그 할당량

각 태그의 문자열 값은 최대 256자가 될 수 있으며, 태그에 허용되는 값 을 지정하는 옵션이 있습니다.

다음 설명은 테이블과 뷰가 아닌 모든 오브젝트에 적용됩니다.

Snowflake에서는 단일 오브젝트에 설정할 수 있는 고유한 태그 키의 최대 수가 50개입니다. CREATE <오브젝트> 또는 ALTER <오브젝트> 문에서 100은 단일 문에 지정할 수 있는 최대 태그 수입니다.

고유 태그의 최대 개수는 테이블과 뷰의 열을 포함하여 테이블과 뷰에 대해 약간 다릅니다.

테이블, 뷰 및 열

테이블 또는 뷰와 해당 열의 경우, 단일 CREATE <오브젝트> 또는 ALTER <오브젝트> 문에 지정할 수 있는 고유 태그의 최대 개수는 100개입니다. 이 전체 값에는 다음과 같은 제한이 있습니다.

  • 단일 테이블 또는 뷰 오브젝트: 고유 태그 50개.

  • 단일 테이블 또는 뷰에 결합된 모든 열: 고유 태그 50개.

예를 들어 테이블의 단일 열에 그 열에 대해 설정된 10개의 고유한 태그가 있는 경우 Snowflake에서는 다음을 허용합니다.

  • 테이블에서 같은 열이나 다른 열 또는 테이블에 있는 열의 조합에서 추가 고유 태그 40개 설정.

  • 테이블 자체에서 추가 고유 태그 50개 설정.

테이블 자체와 그 테이블의 열에 대해 고유 태그 50개의 제한이 충족되면 테이블 또는 테이블의 열에서 태그를 추가로 설정할 수 없습니다. 이때 테이블이나 테이블의 열에 추가 태그를 설정하려는 경우, 그다음에 고려해야 할 단계는 오브젝트에 대한 태그 할당량을 관리하는 방법입니다.

태그 할당량 관리하기

고유한 태그의 최대 개수 50개에는 DROP TAG 문을 사용해 태그를 삭제한 시점부터 24시간 동안 삭제한 태그가 포함됩니다. 기간을 이렇게 정하는 이유는 필요한 경우에 태그를 삭제한 사용자가 UNDROP TAG 문을 실행할 수 있도록 하기 위해서입니다. UNDROP TAG 작업이 24시간의 간격 내에 실행되면 Snowflake가 해당 삭제 작업 이전의 최신 상태였던 태그 할당(즉, 참조)을 복원합니다.

24시간의 기간이 만료되면 Snowflake가 삭제된 태그와 관련된 모든 참조를 제거합니다. 이때, 삭제된 태그를 한 번 참조한 오브젝트 또는 열에 새 태그를 할당할 수 있습니다.

오브젝트에 대한 태그 할당량을 관리하려면 다음 절차를 따르십시오.

  1. Account Usage에서 TAG_REFERENCES 뷰를 쿼리하여 태그 할당을 결정합니다.

  2. 오브젝트 또는 열에서 태그를 설정 해제합니다. 예:

    오브젝트의 경우 해당 ALTER <오브젝트> ... UNSET TAG 명령을 사용합니다.

    테이블 또는 뷰 열의 경우 해당 ALTER { TABLE | VIEW } ... { ALTER | MODIFY } COLUMN ... UNSET TAG 명령을 사용합니다.

  3. DROP TAG 문을 사용하여 태그를 삭제합니다.

태그 계보

태그는 Snowflake 보안 오브젝트 계층 구조에 따라 상속됩니다. Snowflake는 사용자 Snowflake 환경의 보안 오브젝트 계층 구조에 최대한 가깝게 태그 키를 정의하는 것을 권장합니다.

The tag administrator can apply masking policies to tables and views.

태그 상속이란 태그가 테이블에 적용되는 경우 해당 태그도 해당 테이블의 열에 적용됨을 의미합니다. 이러한 동작을 태그 계보라고 합니다.

주어진 오브젝트에서 상속된 태그를 재정의할 수 있습니다. 예를 들어 테이블 열이 sales라는 문자열 값과 함께 cost_center라는 이름의 태그를 상속하는 경우, sales_na와 같은 더 구체적인 태그 문자열 값으로 태그를 업데이트하여 북미 영업 비용 센터를 지정할 수 있습니다. 또한, 새 태그를 테이블 열에 적용할 수도 있습니다. ALTER TABLE … ALTER COLUMN 문을 사용하여 해당 열에서 태그 문자열 값을 업데이트하고 열에 하나 이상의 추가 태그를 설정합니다.

태그 키를 정의하고 태그를 Snowflake 오브젝트에 할당한 후에는 지정된 테이블 함수를 사용하여 태그, 태그 참조 및 태그 계보를 추적하거나 이 항목의 태그 사용 에서와 같이 뷰를 쿼리할 수 있습니다.

참고

태그 계보에는 중첩된 오브젝트에 대한 전파 가 포함되지 않습니다. 예:

table_1 » view_1 » materialized_view_1

기본 테이블 또는 뷰와 관련하여 중첩된 오브젝트가 이미 존재하는 경우, 기본 오브젝트에 태그가 설정되어 있더라도 중첩된 오브젝트에 자동으로 태그가 설정되지는 않습니다. 이 예에서는 table_1 에 태그를 설정해도 같은 태그가 view_1materialized_view_1 에 설정되지는 않습니다. 이 동작은 열의 경우도 마찬가지입니다.

기본 오브젝트 또는 열의 태그가 중첩된 오브젝트로도 넘어가도록 해야 하는 경우, 중첩된 오브젝트에서 CREATE OR REPLACE 문을 실행하는 것과 함께, SQL 문이 중첩된 오브젝트 또는 열에 태그를 지정하도록 하십시오.

태그 이점

사용 편의성

태그를 한 번 정의하면 여러 다른 오브젝트에 여러 번 적용할 수 있습니다.

태그 계보

태그는 상속되므로, 보안 오브젝트 계층 구조에서 높은 수준의 오브젝트에 태그를 적용하면 모든 하위 오브젝트에도 해당 태그가 적용됩니다. 예를 들어, 테이블에 태그를 설정하면 해당 테이블의 모든 열에 태그가 상속됩니다.

복제 시 일관적인 할당

Snowflake는 기본 데이터베이스의 태그 및 태그 할당을 보조 데이터베이스로 복제합니다.

자세한 내용은 이 항목의 복제 섹션을 참조하십시오.

민감한 데이터 추적 및 리소스 사용

태그를 사용하면 민감한 데이터(예: PII, 시크릿)를 편리하게 식별하고 Snowflake 리소스 사용 현황을 확인할 수 있습니다. 동일한 시스템의 데이터와 메타데이터를 사용하여 분석가는 태그 정의(예: cost_center, department)에 따라 어떤 리소스가 Snowflake 크레딧을 가장 많이 사용하는지 빠르게 결정할 수 있습니다.

중앙 집중식 또는 분산형 관리

태그는 내부 및 외부 규정 요구 사항을 준수할 수 있도록 다양한 관리 방식을 지원합니다.

중앙 집중식 방식에서 tag_admin 사용자 지정 역할은 태그를 생성하여 Snowflake 오브젝트에 적용합니다.

분산형 방식에서 개별 팀은 Snowflake 오브젝트에 태그를 적용하고 tag_admin 사용자 지정 역할은 태그를 생성하여 일관적으로 태그 이름을 지정할 수 있습니다.

고려 사항

향후 권한 부여

태그에 대한 향후 권한 부여 는 지원되지 않습니다.

해결 방법으로 APPLY TAG 권한을 사용자 지정 역할에 부여하여 해당 역할이 또 다른 오브젝트에 태그를 적용하도록 허용하십시오.

Snowflake 오브젝트 및 기능과 함께 태그 사용하기

태그가 Snowflake 오브젝트 및 기능에 영향을 주는 방법에 대한 설명은 다음과 같습니다.

지원되는 오브젝트

다음 테이블에는 Snowflake 보안 가능 오브젝트 계층 구조를 기반으로 하는 열을 포함하여, 태그에 지원되는 오브젝트가 나와 있습니다.

아래 테이블에서 달리 지정하지 않는 한 CREATE <오브젝트> 문 또는 ALTER <오브젝트> 문으로 오브젝트에 태그를 설정할 수 있습니다.

CREATE TABLE, CREATE VIEW, ALTER TABLE … MODIFY COLUMN 또는 ALTER VIEW 문을 사용하여 열에 태그를 설정할 수 있습니다.

오브젝트 계층 구조

지원되는 오브젝트

참고

조직

계정

전역 APPLY TAG 권한을 가진 역할이 현재 계정 에 태그를 설정 할 수 있습니다.

계정

통합

역할

공유

사용자

웨어하우스

데이터베이스

모든 통합 유형 이 지원됩니다. ALTER INTEGRATION 명령을 사용하여 통합에 태그를 설정합니다.

태그는 데이터 공유 공급자의 의해 공유에 설정됩니다. 이러한 태그는 데이터 공유 컨슈머에게 표시되지 않습니다. ALTER SHARE 명령을 사용하여 공유에 태그를 설정합니다.

데이터베이스

스키마

스키마

외부 테이블

구체화된 뷰

파이프

절차

스테이지

스트림

테이블

작업

해당하는 ALTER <오브젝트> 명령을 사용하여 파이프, 프로시저, 스테이지, 작업에 태그를 설정합니다.

테이블 또는 뷰

태그 값 지정하기

태그 속성을 사용하여 ALLOWED_VALUES 오브젝트 에서 태그가 설정될 때 태그에 할당할 수 있는 문자열 값을 지정할 수 있습니다. 단일 태그에 가능한 문자열 값의 최대 개수는 50개입니다.

CREATE TAG 문으로 태그를 만들거나 바꿀 때, 또는 ALTER TAG 문으로 기존 태그 키를 수정하는 동안 이러한 값을 지정할 수 있습니다. ALTER TAG 문은 태그에 허용되는 값 추가 태그에 대한 기존 값 삭제를 지원합니다.

태그에 대해 허용된 값의 목록을 확인하려면 GET_DDL 함수를 호출하십시오.

예:

'finance''engineering' 의 두 가지 허용된 문자열 값만으로 cost_center 로 명명된 태그를 생성합니다.

create tag cost_center
    allowed_values 'finance', 'engineering';

허용되는 값을 확인합니다.

select get_ddl('tag', 'cost_center')

+------------------------------------------------------------------------------+
| GET_DDL('tag', 'cost_center')                                                |
|------------------------------------------------------------------------------|
| create or replace tag cost_center allowed_values = 'finance', 'engineering'; |
+------------------------------------------------------------------------------+

허용된 문자열 값으로 'marketing' 을 추가하도록 cost_center 로 명명된 태그를 수정합니다.

alter tag cost_center
    add allowed_values 'marketing';

허용된 문자열 값으로 'engineering' 을 삭제하도록 cost_center 로 명명된 태그를 수정합니다.

alter tag cost_center
    drop allowed_values 'engineering';

주어진 태그에 대해 허용된 문자열 값의 목록을 얻으려면 GET_DDL 함수 또는 SYSTEM$GET_TAG_ALLOWED_VALUES 함수를 호출하십시오. 예를 들어 태그 cost_centergovernance 로 명명된 데이터베이스와 tags 로 명명된 스키마에 저장되어 있다고 가정합니다.

select system$get_tag_allowed_values('governance.tags.cost_center');

+--------------------------------------------------------------+
| SYSTEM$GET_TAG_ALLOWED_VALUES('GOVERNANCE.TAGS.COST_CENTER') |
|--------------------------------------------------------------|
| ["finance","marketing"]                                      |
+--------------------------------------------------------------+

오브젝트 태깅 및 마스킹 정책

자세한 내용은 태그 기반 마스킹 정책 섹션을 참조하십시오.

열에 직접 할당된 마스킹 정책이 태그 기반 마스킹 정책보다 우선합니다.

CREATE TABLE 문

CREATE TABLE … LIKE 에서 원본 테이블에 할당된 태그가 대상 테이블에 할당됩니다.

복제

태그 및 해당 할당은 데이터베이스 복제 및 복제 그룹을 사용하여 복제할 수 있습니다.

데이터베이스 복제 의 경우, 다음 조건 중 하나가 참이면 복제 작업이 실패합니다.

  • 기본 데이터베이스가 Enterprise 이상 계정에 있고 태그가 포함되어 있지만 복제가 승인된 1개 이상의 계정이 하위 에디션에 있습니다.

  • 기본 데이터베이스에 포함된 오브젝트에 다른 데이터베이스의 태그에 대한 현수 참조 가 있습니다.

복제 그룹 에서 여러 데이터베이스를 복제할 때 데이터베이스 복제에 대한 현수 참조 동작을 피할 수 있습니다.

참고

장애 조치 또는 장애 복구 작업을 사용하는 경우 Snowflake 계정은 Business Critical Edition 이상이어야 합니다.

자세한 내용은 데이터베이스 복제 및 장애 조치/장애 복구 섹션을 참조하십시오.

복제

  • 원본 오브젝트(예: 테이블)의 태그 연결은 복제된 오브젝트에서 유지 관리됩니다.

  • 데이터베이스 또는 스키마의 경우:

    해당 데이터베이스 또는 스키마에 저장된 태그도 복제됩니다.

    데이터베이스 또는 스키마가 복제되면 해당 스키마 또는 데이터베이스에 있는 태그도 복제됩니다.

    테이블 또는 뷰가 원본 스키마/데이터베이스에 존재하고 같은 스키마 또는 데이터베이스의 태그에 대한 참조가 있는 경우, 복제된 테이블 또는 뷰가 원본 스키마 또는 데이터베이스의 태그 대신 (대상 스키마/데이터베이스에서) 복제된 해당 태그에 매핑됩니다.

데이터 공유

  • 공유 뷰와 태그가 서로 다른 데이터베이스에 존재할 때는 태그가 포함된 데이터베이스에 대한 REFERENCE_USAGE 권한을 공유에 부여합니다. 자세한 내용은 여러 데이터베이스에서 데이터 공유하기 섹션을 참조하십시오.

  • 데이터 공유 컨슈머 계정에서:

    • SHOW TAGS 명령을 실행하는 역할에 공유 태그가 포함된 스키마에 대한 USAGE 권한이 있는 경우 SHOW TAGS 를 실행하면 공유 태그가 반환됩니다.

    • 데이터 공유 공급자 계정의 태그가 공유 테이블에 할당되면 데이터 공유 컨슈머가 SYSTEM$GET_TAG 함수 또는 TAG_REFERENCES Information Schema 테이블 함수를 호출하여 태그 할당을 볼 수 없습니다.

태그 사용하기

다음은 Snowflake에서 태그를 사용하기 위한 전체적인 개요입니다.

  1. 사용자 지정 역할을 정의하고 권한을 할당합니다.

  2. 사용자에게 사용자 지정 역할을 부여합니다.

  3. CREATE TAG 문을 사용하여 태그를 만듭니다.

  4. ALTER <오브젝트> 명령을 사용하여 기존 Snowflake 오브젝트에 태그를 할당합니다.

    또는 CREATE <오브젝트> 명령을 사용하여 오브젝트에 태그를 할당할 수 있습니다.

  5. 테이블 함수 및 뷰를 통해 태그를 추적합니다.

간단히 하기 위해, 이러한 단계에서는 태그에서 중앙 집중식 관리 방식을 사용하고, tag_admin 사용자 지정 역할에 태그에 대한 CREATE 및 APPLY 권한이 모두 있는 것으로 가정합니다.

1단계: 사용자 지정 역할을 만들고 권한을 할당합니다.

중앙 집중식 방식에서는 tag_admin 사용자 지정 역할이 Snowflake 오브젝트에 대한 태그 생성 및 할당 작업을 수행합니다.

이 예에서는 ACCOUNTADMIN 시스템 역할을 사용함에 유의하십시오. 프로덕션 환경에서 권한이 더 높은 역할을 사용하는 것이 바람직하지 않은 경우, tag_admin 사용자 지정 역할에 권한을 할당하는 역할에 tag_admin 사용자 지정 역할의 자격을 확인하기 위해 필요한 권한이 있는 확인하십시오. 자세한 내용은 이 항목의 태그 관리하기 섹션을 참조하십시오.

use role useradmin;
create role tag_admin;
use role accountadmin;
grant create tag on schema <schema_name> to role tag_admin;
grant apply tag on account to role tag_admin;

2단계: 사용자에게 TAG_ADMIN 사용자 지정 역할을 부여합니다.

태그 관리자 역할을 하는 사용자에게 TAG_ADMIN 사용자 지정 역할을 부여합니다.

use role useradmin;
grant role tag_admin to user jsmith;

3단계: 태그를 만듭니다.

CREATE TAG 문을 실행하여 태그를 생성합니다.

use role tag_admin;
use schema my_db.my_schema;
create tag cost_center;

4단계: 태그를 Snowflake 오브젝트에 할당합니다.

CREATE <오브젝트> 문을 사용하여 태그를 Snowflake 오브젝트에 할당합니다.

예를 들어, 새 웨어하우스에 태그를 설정하려면 CREATE WAREHOUSE 명령을 사용합니다.

use role tag_admin;
create warehouse mywarehouse with tag (cost_center = 'sales');

ALTER <오브젝트> 문을 사용하여 기존 Snowflake 오브젝트에 태그를 할당합니다.

예를 들어, 기존 웨어하우스에 태그를 설정하려면 ALTER WAREHOUSE 명령을 사용합니다.

use role tag_admin;
alter warehouse wh1 set tag cost_center = 'sales';

기존 열에 태그를 설정하거나 설정을 취소하려면, 테이블 열의 경우 ALTER TABLE … MODIFY COLUMN 명령을 사용하거나 뷰 열의 경우 ALTER VIEW … MODIFY COLUMN 명령을 사용합니다. 단일 명령에 태그를 2개 이상 설정하거나 설정을 취소할 수 있음에 유의하십시오.

-- For a table or external table column

alter table <table_name> modify column <column_name> set tag <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ];
alter table <table_name> modify column <column_name> unset tag <tag_name> [ , <tag_name> , ... ];

-- For a view or materialized view column

alter view <view_name> modify column <column_name> set tag <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ];
alter view <view_name> modify column <column_name> unset tag <tag_name> [ , <tag_name> , ... ];

5단계: 태그를 추적합니다.

태그 사용은 다른 Account Usage 뷰 2개, Information Schema 테이블 함수 2개, Account Usage 테이블 함수 및 시스템 함수를 통해 추적할 수 있습니다.

태그 사용을 추적하는 방법을 결정하는 두 가지 일반적인 접근 방식인

  • 태그 검색 또는 태그 나열을 생각해보면 도움이 될 수 있습니다.

  • 태그와 오브젝트 간의 할당(즉, 참조)을 식별합니다.

태그 검색

Snowflake는 태그를 나열하고 주어진 태그 키의 태그 문자열 값을 식별하기 위해 다음 옵션을 지원합니다.

  • 계정의 태그 식별:

    공유 SNOWFLAKE 데이터베이스의 Account Usage 스키마에서 TAGS 뷰를 사용합니다. 이 뷰는 현재 태그와 삭제된 태그에 대한 정보를 제공하는 Snowflake 계정의 모든 태그에 대한 카탈로그 로 생각할 수 있습니다. 예:

    select * from snowflake.account_usage.tags
    order by tag_name;
    
  • 주어진 태그의 값 식별:

    SYSTEM$GET_TAG 시스템 함수를 사용하여 지정된 태그와 Snowflake 오브젝트 또는 열에 할당된 태그 값을 반환합니다.

    select system$get_tag('cost_center', 'my_table', 'table');
    
할당 식별

Snowflake는 쿼리가 계정 또는 특정 데이터베이스를 대상으로 해야 하는지 여부와 태그 계보가 필요한지 여부에 따라 태그 할당을 식별하는 다양한 옵션을 지원합니다.

  • 계보가 있는 계정 수준 쿼리:

    Account Usage 테이블 함수 TAG_REFERENCES_WITH_LINEAGE 를 사용하여 태그 계보도 포함하는 주어진 태그 키와 태그 값을 가진 모든 오브젝트를 확인합니다.

    select *
    from table(snowflake.account_usage.tag_references_with_lineage('my_db.my_schema.cost_center'));
    
  • 계보가 없는 계정 수준 쿼리:

    Account Usage TAG_REFERENCES 뷰를 사용하여 주어진 태그 키와 태그 값은 있지만 태그 계보는 포함하지 않는 모든 오브젝트를 확인합니다.

    select * from snowflake.account_usage.tag_references
    order by tag_name, domain, object_id;
    
  • 계보가 있는 데이터베이스 수준 쿼리:

    모든 Snowflake 데이터베이스에는 Snowflake Information Schema 가 포함됩니다. Information Schema 테이블 함수 TAG_REFERENCES 를 사용하여 주어진 데이터베이스에 태그 계보도 포함하는 주어진 태그를 가진 모든 오브젝트를 확인합니다.

    select *
    from table(my_db.information_schema.tag_references('my_table', 'table'));
    
  • 계보가 있는 테이블 또는 뷰의 모든 열에서 모든 태그에 대한 데이터베이스 수준 쿼리:

    Information Schema 테이블 함수 TAG_REFERENCES_ALL_COLUMNS 를 사용하여 주어진 테이블 또는 뷰의 모든 열에 설정된 모든 태그를 가져옵니다.

    오브젝트 이름이 뷰(즉, 뷰, 구체화된 뷰)인 경우에도 열을 포함하는 모든 오브젝트에 대해 도메인 TABLE사용해야 합니다.

    select *
    from table(information_schema.tag_references_all_columns('my_table', 'table'));
    

태그 관리하기

태그 권한

사용자가 태그를 생성, 설정 및 소유할 수 있는지 여부를 결정하기 위해 Snowflake에서 지원하는 권한은 다음과 같습니다.

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

권한

사용법

CREATE

스키마에 새 태그를 생성할 수 있습니다.

APPLY

Snowflake 오브젝트에서 태그에 대한 설정 및 설정 해제 작업을 수행할 수 있습니다. 구문 예제는 DDL 명령, 작업 및 권한 요약 섹션을 참조하십시오.

OWNERSHIP

태그의 소유권을 이전하며, 태그에 대한 모든 권한을 부여할 수 있습니다. 태그의 대부분 속성을 변경하려면 필요합니다.

태그 DDL 참조

Snowflake는 태그 생성과 관리를 위해 다음 DDL을 지원합니다.

Snowflake는 태그 오브젝트에 대한 설명 작업을 지원하지 않습니다.

DDL 명령, 작업 및 권한 요약

다음 테이블은 태그 권한과 DDL 작업 사이의 관계를 요약하여 보여줍니다.

작업

필요한 권한

태그 만들기.

동일한 스키마에서 CREATE TAG 권한이 있는 역할.

태그 변경.

태그에 대한 OWNERSHIP 권한이 있는 역할.

태그 삭제 및 삭제 취소.

태그에 대한 USAGE 권한 및 태그가 있는 데이터베이스 및 스키마에 대한 OWNERSHIP 권한이 있는 역할.

태그 표시.

다음 중 1개: . 태그가 있는 스키마에 대한 USAGE 권한이 있는 역할, 또는 . ACCOUNT에 대한 APPLY TAG 권한이 있는 역할.

오브젝트에 태그 설정 또는 설정 취소.

개별 오브젝트의 경우, 계정에 대한 APPLY TAG 권한 또는 태그에 대한 APPLY TAG 권한 및 태그가 설정된 오브젝트에 대한 OWNERSHIP 권한이 있는 역할. 지원되는 오브젝트 섹션을 참조하십시오.

열에 태그 설정 또는 설정 해제.

계정에 대한 APPLY TAG 권한이 있는 역할 또는 태그에 대한 APPLY 권한 및 테이블 또는 뷰에 대한 OWNERSHIP 권한이 있는 역할입니다.

오브젝트에서 태그 가져오기.

SYSTEM$GET_TAG, TAG_REFERENCESTAG_REFERENCES_WITH_LINEAGE 참조.

Snowflake는 오브젝트에 태그를 만들고 설정할 수 있는 다양한 권한을 지원합니다.

  1. tag_admin 사용자 지정 역할이 모든 오브젝트/열에 대한 태그를 만들고 설정하는 중앙 집중식 태그 관리 접근 방식의 경우, 다음 권한이 필요합니다.

    use role securityadmin;
    grant create tag on schema <db_name.schema_name> to role tag_admin;
    grant apply tag on account to role tag_admin;
    
  2. 하이브리드 관리 접근 방식에서는, 태그가 일관되게 명명되고 개별 팀 또는 역할이 특정 태그에 대한 APPLY 권한을 갖도록 보장하기 위해 단일 역할에 CREATE TAG 권한이 주어집니다.

    예를 들어, 사용자 지정 역할 finance_role 이 소유한 테이블과 뷰에 태그 cost_center 를 설정할 권한을 이 역할에 부여할 수 있습니다(즉, 역할이 테이블 또는 뷰에 대해 OWNERSHIP 권한을 가짐).

    use role securityadmin;
    grant create tag on schema <db_name.schema_name> to role tag_admin;
    grant apply on tag cost_center to role finance_role;
    
맨 위로 이동