오브젝트 태그 작업하기¶
이 항목에서는 태그를 생성하고 이를 Snowflake 오브젝트에 할당하는 방법에 대해 설명합니다. 또한 태그를 삭제하는 방법에 대한 지침도 포함되어 있습니다.
태그를 생성합니다.¶
CREATE TAG 명령을 사용하여 새 태그를 생성합니다. 예를 들어, 선택적 매개 변수 없이 cost_center 라는 기본 태그를 생성하려면 다음을 실행합니다.
CREATE TAG cost_center;
허용되는 태그 값 목록을 설정합니다¶
ALLOWED_VALUES 태그 매개 변수를 사용하면 오브젝트 에 태그가 설정될 때 태그에 할당할 수 있는 문자열 값의 목록을 지정할 수 있습니다. 사용자는 정의된 목록에 값이 없으면 태그에 값을 할당할 수 없습니다.
단일 태그에 대해 가능한 문자열 값의 최대 개수는 5,000개입니다. 각 태그의 문자열 값은 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 를 사용하여 기존 테이블, 뷰, 열에 태그를 설정할 수 있습니다.
태그를 설정하는 옵션은 여러 가지가 있습니다.
탐색 메뉴에서 Catalog » :ui:`Database Explorer`를 선택한 다음, 오브젝트 탐색기를 사용하여 원하는 테이블, 뷰 또는 열로 이동합니다.
More 메뉴(즉,
...) » :ui:`Edit`를 선택한 다음, :ui:`+ Tag`를 선택합니다. 프롬프트에 따라 태그 할당을 관리합니다.탐색 메뉴에서 Governance & security » :ui:`Tags & policies`를 선택하고 다음을 수행합니다.
타일, 배포 비율, 가장 많이 사용되는 태그 또는 테이블 중 하나를 선택합니다. Dashboard 에서 항목을 선택하면 Snowsight 에서 Tagged Objects 탭으로 리디렉션됩니다.
필요에 따라 필터를 수정합니다. 오브젝트 또는 열을 선택하면 Snowsight 가 오브젝트 탐색기의 해당 위치로 리디렉션합니다. 필요에 따라 태그 할당을 업데이트합니다.
Tagged Objects 탭으로 직접 이동합니다. 필터를 수정하고 오브젝트 또는 열을 선택하고 태그 할당을 관리합니다.
참고
To access the Tags & policies area, your Snowflake account must be Enterprise Edition or higher. In addition, you must have one of the following roles:
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 권한을 부여받은 역할은 해당 스키마에 대한 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