오브젝트 태그 작업하기¶
이 항목에서는 태그를 생성하고 이를 Snowflake 오브젝트에 할당하는 방법에 대해 설명합니다. 또한 태그를 삭제하는 방법에 대한 지침도 포함되어 있습니다.
태그를 생성합니다.¶
CREATE TAG 명령을 사용하여 새 태그를 생성합니다. 예를 들어, 선택적 매개 변수 없이 cost_center
라는 기본 태그를 생성하려면 다음을 실행합니다.
CREATE TAG cost_center;
허용되는 태그 값 목록을 설정합니다¶
ALLOWED_VALUES
태그 매개 변수를 사용하면 오브젝트 에 태그가 설정될 때 태그에 할당할 수 있는 문자열 값의 목록을 지정할 수 있습니다. 사용자는 정의된 목록에 값이 없으면 태그에 값을 할당할 수 없습니다.
단일 태그에 가능한 문자열 값의 최대 개수는 300개입니다. 각 태그의 문자열 값은 최대 256자까지 입력할 수 있습니다.
CREATE TAG 문으로 태그를 생성하거나 바꿀 때 또는 ALTER TAG 문으로 기존 태그를 수정할 때 허용되는 값 목록을 지정할 수 있습니다. ALTER TAG 문은 태그에 허용되는 값 추가 및 태그에 대한 기존 값 삭제를 지원합니다.
참고
태그가 대상 오브젝트에 자동으로 전파되도록 구성된 경우 허용된 목록의 값 순서에 따라 충돌이 해결되는 방식에 영향을 줄 수 있습니다. 자세한 내용은 태그 전파 충돌 섹션을 참조하십시오.
태그에 대해 허용된 값의 목록을 확인하려면 SYSTEM$GET_TAG_ALLOWED_VALUES 함수를 호출하십시오.
예¶
finance
와 engineering
의 두 가지 허용된 문자열 값만으로 cost_center
로 명명된 태그를 생성합니다.
CREATE TAG cost_center ALLOWED_VALUES 'finance', 'engineering';Copy
허용되는 값을 확인합니다.
SELECT SYSTEM$GET_TAG_ALLOWED_VALUES('governance.tags.cost_center');Copy
허용된 문자열 값으로 marketing
을 추가하도록 cost_center
로 명명된 태그를 수정합니다.
ALTER TAG cost_center ADD ALLOWED_VALUES 'marketing';Copy
허용된 문자열 값으로 engineering
을 삭제하도록 cost_center
로 명명된 태그를 수정합니다.
ALTER TAG cost_center DROP ALLOWED_VALUES 'engineering';Copy
자동으로 전파할 태그를 정의합니다¶
PROPAGATE 태그 매개 변수를 사용하면 특정 상황에서 소스 오브젝트에서 대상 오브젝트로 태그가 자동으로 전파되도록 태그를 구성할 수 있습니다. 이 PROPAGATE 매개 변수는 다음 값으로 설정할 수 있습니다.
PROPAGATE = ON_DEPENDENCY
: 태그는 오브젝트 종속성 이 있을 때 대상 오브젝트로 전파됩니다.PROPAGATE = ON_DATA_MOVEMENT
: 데이터가 소스 오브젝트에서 대상 오브젝트로 이동할 때 태그가 대상 오브젝트로 전파됩니다.PROPAGATE = ON_DEPENDENCY_AND_DATA_MOVEMENT
: 태그는 오브젝트 종속성과 데이터 이동 모두에 대해 전파됩니다.
전파에 대한 자세한 내용은 사용자 정의 태그를 통한 자동 태그 전파 섹션을 참조하십시오.
예¶
오브젝트 종속성이 있을 때 자동으로 전파되는 새 태그를 생성합니다.
CREATE TAG data_sensitivity PROPAGATE = ON_DEPENDENCY;
기존 태그를 업데이트하여 오브젝트 종속성과 데이터 이동 모두에 대한 자동 전파를 활성화하십시오.
ALTER TAG data_sensitivity SET PROPAGATE = ON_DEPENDENCY_AND_DATA_MOVEMENT;
기존 태그를 업데이트하여 전파를 비활성화합니다.
ALTER TAG data_sensitivity UNSET PROPAGATE;
태그 설정하기¶
사용자 인터페이스 또는 SQL 을 사용하여 오브젝트에 태그를 설정할 수 있습니다.
오브젝트에 태그를 설정할 때는 태그의 값을 설정해야 합니다. 이 문자열 값은 최대 256자까지 입력할 수 있습니다.
태그를 생성한 사용자가 허용되는 값의 목록을 지정했을 수 있으며, 이 경우 목록에 있는 태그 값만 설정할 수 있습니다. 주어진 태그에 대해 허용된 문자열 값의 목록을 얻으려면 SYSTEM$GET_TAG_ALLOWED_VALUES 함수를 호출하십시오. 예를 들어, cost_center
라는 태그가 governance
라는 데이터베이스와 tags
라는 스키마에 저장되어 있다고 가정하면 다음을 실행하여 태그 값을 finance
또는 marketing
으로 설정할 수 있는지 확인할 수 있습니다.
SELECT SYSTEM$GET_TAG_ALLOWED_VALUES('governance.tags.cost_center');
+--------------------------------------------------------------+
| SYSTEM$GET_TAG_ALLOWED_VALUES('GOVERNANCE.TAGS.COST_CENTER') |
|--------------------------------------------------------------|
| ["finance","marketing"] |
+--------------------------------------------------------------+
Snowsight 를 사용하여 태그를 설정합니다¶
Snowsight 를 사용하여 기존 테이블, 뷰, 열에 태그를 설정할 수 있습니다.
태그를 설정하는 옵션은 여러 가지가 있습니다.
오브젝트 탐색기(즉, Data » Databases)를 사용하여 원하는 테이블, 뷰 또는 열로 이동합니다.
More 메뉴(즉,
...
)를 선택하고 » Edit, + Tag 을 선택합니다. 표시되는 메시지에 따라 태그 할당을 관리합니다.Snowsight 에서 거버넌스 영역(즉, Monitoring » Governance)으로 이동하여 다음을 수행합니다.
타일, 배포 비율, 가장 많이 사용되는 태그 또는 테이블 중 하나를 선택합니다. Dashboard 에서 항목을 선택하면 Snowsight 에서 Tagged Objects 탭으로 리디렉션됩니다.
필요에 따라 필터를 수정합니다. 오브젝트 또는 열을 선택하면 Snowsight 가 오브젝트 탐색기의 해당 위치로 리디렉션합니다. 필요에 따라 태그 할당을 업데이트합니다.
Tagged Objects 탭으로 직접 이동합니다. 필터를 수정하고 오브젝트 또는 열을 선택하고 태그 할당을 관리합니다.
참고
Governance 영역에 액세스하려면 Snowflake 계정이 Enterprise Edition 이상 이어야 합니다. 또한 다음 역할 중 하나가 있어야 합니다.
ACCOUNTADMIN 역할을 사용합니다.
GOVERNANCE_VIEWER 및 OBJECT_VIEWER 데이터베이스 역할이 부여된 역할을 사용합니다.
이러한 데이터베이스 역할에 대한 자세한 내용은 SNOWFLAKE 데이터베이스 역할 섹션을 참조하십시오.
SQL 을 사용하여 태그를 설정합니다¶
SQL 명령을 사용하여 생성 중인 웨어하우스에 태그 AA를 할당하려면 다음을 실행합니다.
새로 생성하는 오브젝트에 태그를 설정하려면 CREATE … WITH TAG 명령을 사용합니다. 예를 들어, 생성 중인 웨어하우스e태그를 할당하려면 다음을 실행합니다.
CREATE WAREHOUSE mywarehouse WITH TAG (cost_center = 'sales');
기존 오브젝트에 태그를 설정하려면ALTER … SETTAG명령을 사용합니다. 새 오브젝트를 만들 때 cost_center
명령을 사용하여 태그를 설정하거나 기존 오브젝트에 태그를 설정할 수 있습니다.
ALTER WAREHOUSE wh1 SET TAG cost_center = 'sales';
확장 예제: SQL 을 사용하여 태그 생성하기 및 할당하기¶
다음은 SQL 을 사용하여 오브젝트 태그를 구현하는 방법에 대한 개략적인 개요를 제공하는 확장 예제입니다. 다음을 수행하는 방법을 보여줍니다.
태그 작업에 필요한 액세스 제어 권한을 관리합니다.
간단히 하기 위해, 이 워크플로에서는 태그에서 중앙 집중식 관리 방식을 사용하고,
tag_admin
사용자 지정 역할에 CREATE TAG 권한과 전역 APPLY TAG 권한이 모두 있는 것으로 가정합니다. 다른 접근법은 태그 권한 할당 접근법 를 참조하십시오.CREATE TAG 문을 사용하여 태그를 만듭니다.
CREATE <오브젝트> 명령을 사용하여 새 Snowflake 오브젝트에 태그를 할당합니다.
ALTER <오브젝트> 명령을 사용하여 기존 Snowflake 오브젝트에 태그를 할당합니다.
사용자 지정 역할을 만들고 권한을 할당합니다.
중앙 집중식 방식에서는
tag_admin
사용자 지정 역할이 Snowflake 오브젝트에 대한 태그 생성 및 할당 작업을 수행합니다.이 예에서는 ACCOUNTADMIN 시스템 역할을 사용함에 유의하십시오. 프로덕션 환경에서 권한이 더 높은 역할을 사용하는 것이 바람직하지 않은 경우,
tag_admin
사용자 지정 역할에 권한을 할당하는 역할에tag_admin
사용자 지정 역할의 자격을 확인하기 위해 필요한 권한이 있는 확인하십시오. 자세한 내용은 이 항목의 액세스 제어 권한 섹션을 참조하십시오.USE ROLE USERADMIN; CREATE ROLE tag_admin; USE ROLE ACCOUNTADMIN; GRANT CREATE TAG ON SCHEMA mydb.mysch TO ROLE tag_admin; GRANT APPLY TAG ON ACCOUNT TO ROLE tag_admin;
Copy태그 관리자 역할을 하는 사용자에게
tag_admin
사용자 지정 역할을 부여합니다.USE ROLE USERADMIN; GRANT ROLE tag_admin TO USER jsmith;
CopyCREATE TAG 문을 실행하여 태그를 생성합니다.
USE ROLE tag_admin; USE SCHEMA mydb.mysch; CREATE TAG cost_center;
Copy새 웨어하우스에 태그를 할당합니다.
USE ROLE tag_admin; CREATE WAREHOUSE mywarehouse WITH TAG (cost_center = 'sales');
Copy기존 웨어하우스에 태그를 할당합니다.
USE ROLE tag_admin; ALTER WAREHOUSE wh1 SET TAG cost_center = 'sales';
Copy기존 테이블의 열에 태그를 할당합니다.
ALTER TABLE hr.tables.empl_info MODIFY COLUMN job_title SET TAG cost_center = 'marketing';
Copy
태그 삭제하기¶
태그를 삭제하려면 DROP TAG 명령을 사용합니다. 명령을 실행하면 태그가 영구 삭제되기까지 24시간의 유예 기간이 있습니다. 유예 기간 동안 UNDROP TAG 명령을 실행하여 태그를 복원할 수 있으며, 태그와 오브젝트 간의 모든 태그 할당(즉, 참조)도 복원됩니다.
삭제하기 전에 어떤 오브젝트에 태그가 있는지 확인하려면 TAG_REFERENCES 뷰(Account Usage의)를 쿼리하여 태그 할당을 확인합니다.
액세스 제어 권한¶
태그 권한¶
사용자가 태그를 생성, 설정 및 소유할 수 있는지 여부를 결정하기 위해 Snowflake에서 지원하는 권한은 다음과 같습니다.
스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.
권한 |
사용법 |
---|---|
CREATE |
스키마에 새 태그를 생성할 수 있습니다. |
APPLY |
Snowflake 오브젝트에서 태그에 대한 설정 및 설정 해제 작업을 수행할 수 있습니다. 구문 예제는 DDL 명령, 작업 및 권한 요약 섹션을 참조하십시오. |
OWNERSHIP |
태그의 소유권을 이전하며, 태그에 대한 모든 권한을 부여할 수 있습니다. 태그의 대부분 속성을 변경하려면 필요합니다. |
DDL 명령, 작업 및 권한 요약¶
다음 테이블은 태그 권한과 DDL 작업 사이의 관계를 요약하여 보여줍니다.
작업 |
필요한 권한 |
---|---|
태그 만들기. |
동일한 스키마에서 CREATE TAG 권한이 있는 역할. |
전파하는 태그 생성하기 |
태그 권한에 APPLY TAG ON ACCOUNT 및 OWNERSHIP 이 있는 역할입니다. |
태그 변경. |
태그에 대한 OWNERSHIP 권한이 있는 역할. |
태그 삭제 및 삭제 취소. |
태그에 대한 USAGE 권한 및 태그가 있는 데이터베이스 및 스키마에 대한 OWNERSHIP 권한이 있는 역할. |
태그 표시. |
다음 중 하나: . 태그가 있는 스키마에 대해 USAGE 권한이 있는 역할 또는 ` . 권한이 있는 역할, APPLY TAG ON ACCOUNT 권한이 있는 역할. |
오브젝트에 태그 설정 또는 설정 취소. |
개별 오브젝트의 경우 APPLY TAG ON ACCOUNT 권한이 있는 역할 또는 |
열에 태그 설정 또는 설정 해제. |
APPLY TAG ON ACCOUNT 권한이 있는 역할 또는 태그에는 APPLY 권한이 있고 테이블 또는 보기에는 OWNERSHIP 권한이 있는 역할입니다. |
오브젝트에서 태그 가져오기. |
SYSTEM$GET_TAG, TAG_REFERENCES 및 TAG_REFERENCES_WITH_LINEAGE 참조. |
태그 권한 할당 접근법¶
이 섹션에서는 태그를 생성하고 설정하는 데 필요한 권한을 할당하는 다양한 접근법에 대해 설명합니다.
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;
Copy하이브리드 관리 접근 방식에서는, 태그가 일관되게 명명되고 개별 팀 또는 역할이 특정 태그에 대한 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;
Copy