オブジェクトのタグ付け¶
このトピックでは、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はドロップされたタグに関連するすべての参照をパージします。この時点で、ドロップされたタグを一度参照したオブジェクトまたは列に、新しいタグを割り当てることができます。
次の手順を使用して、オブジェクトのタグクォータを管理します。
TAG_REFERENCES ビュー(Account Usage)をクエリして、タグの割り当てを決定します。
オブジェクトまたは列からタグの設定を解除します。例:
オブジェクトの場合は、対応する
ALTER <オブジェクト> ... UNSET TAG
コマンドを使用します。テーブルまたはビュー列の場合は、対応する
ALTER { TABLE | VIEW } ... { ALTER | MODIFY } COLUMN ... UNSET TAG
コマンドを使用します。DROP TAG ステートメントを使用してタグをドロップします。
タグ系統¶
タグは、Snowflakeのセキュリティ保護可能なオブジェクトの階層に基づいて継承されます。Snowflakeは、Snowflake環境の セキュリティ保護可能なオブジェクト の階層にできるだけ近いタグキーを定義することをお勧めします。
タグの継承とは、タグがテーブルに適用される場合、そのタグはそのテーブルの列にも適用されることを意味します。この動作は、タグ系統と呼ばれます。
特定のオブジェクトで継承されたタグを上書きできます。たとえば、テーブルの列が、文字列値がsalesであるcost_centerという名前のタグを継承する場合、タグは、北米の販売コストセンターを指定するsales_naなど、より具体的なタグ文字列値に更新できます。さらに、新しいタグをテーブル列に適用できます。 ALTER TABLE ... ALTER COLUMN ステートメントを使用して、列のタグ文字列値を更新し、列に1つ以上の追加タグを設定します。
タグキーを定義し、Snowflakeオブジェクトにタグを割り当てた後、指定されたテーブル関数を使用してタグ、タグ参照、およびタグ系統を追跡するか、 タグの使用 (このトピック内)に示すようにビューをクエリします。
注釈
タグの系統には、ネストされたオブジェクトへの 伝達 が含まれて いません。例:
table_1
»view_1
»materialized_view_1
ネストされたオブジェクトが基になるテーブルまたはビューに相対してすでに存在する場合は、基になるオブジェクトにタグが設定されても、ネストされたオブジェクトにタグが自動的に設定されることはありません。この例では、 table_1
にタグを設定しても、 view_1
と materialized_view_1
に同じタグが設定されることはありません。この動作は列にも当てはまります。
基になるオブジェクトまたは列のタグをネストされたオブジェクトに引き継ぐ必要がある場合は、ネストされたオブジェクトで CREATE OR REPLACE ステートメントを実行し、 合わせて SQL ステートメントが、ネストされたオブジェクトまたは列でタグを指定することを確認します。
タグの利点¶
- 使いやすさ
タグを一度定義して、必要な数の異なるオブジェクトに適用します。
- タグ系統
タグは継承されるため、セキュリティ保護可能なオブジェクトの階層の上位にあるオブジェクトにタグを適用すると、すべての子オブジェクトにタグが適用されます。たとえば、タグがテーブルに設定されている場合、そのタグはそのテーブルのすべての列に継承されます。
- 複製での一貫した割り当て
Snowflakeは、プライマリデータベース内のタグとその割り当てをセカンダリデータベースに複製します。
詳細については、 複製 (このトピック内)をご参照ください。
- 機密データの追跡とリソースの使用
タグは機密データ(例: PII、シークレット)の識別を簡素化し、Snowflakeリソースの使用状況を可視化します。アナリストは、同じシステム内のデータとメタデータを使用して、タグ定義(例:
cost_center
、department
)に基づいて、どのリソースが最も多くのSnowflakeクレジットを消費しているかをすばやく判断できます。- 集中型または分散型の管理
タグは、さまざまな管理アプローチをサポートして、内部および外部の規制要件への準拠を促進します。
集中型アプローチでは、
tag_admin
カスタムロールがタグを作成して、Snowflakeオブジェクトに適用します。分散型アプローチでは、個々のチームがSnowflakeオブジェクトにタグを適用し、
tag_admin
カスタムロールがタグを作成して、一貫したタグの命名を確実にします。
Snowflakeオブジェクトと機能でのタグの使用¶
以下では、タグがSnowflakeのオブジェクトと機能にどのように影響するかについて説明します。
サポートされているオブジェクト¶
次のテーブルに、列を含む、タグでサポートされているオブジェクトをSnowflakeのセキュリティ保護可能なオブジェクト階層に基づいて示します。
タグは、以下のテーブルでそれ以外に指定されている場合を除き、 CREATE <オブジェクト> ステートメントまたは ALTER <オブジェクト> ステートメントを使用してオブジェクトに設定できます。
タグは、 CREATE TABLE、 CREATE VIEW、 ALTER TABLE ... MODIFY COLUMN、または ALTER VIEW ステートメントのいずれかを使用して列に設定できます。
オブジェクト階層 |
サポートされているオブジェクト |
注意 |
---|---|---|
組織 |
アカウント |
|
アカウント |
データベース |
|
統合 |
すべての 型 がサポートされています。 ALTER INTEGRATION コマンドを使用して、統合にタグを設定します。 |
|
ロール |
タグはロールに設定できますが、 データベースロール にはタグを設定できません。 |
|
共有 |
タグは、データ共有プロバイダーによって共有に設定されます。これらのタグは、データ共有コンシューマーには表示されません。 ALTER SHARE コマンドを使用して、共有にタグを設定します。 |
|
ユーザー |
||
ウェアハウス |
||
データベース |
スキーマ |
|
スキーマ |
外部テーブル |
|
マテリアライズドビュー |
||
パイプ |
ALTER PIPE ステートメントでパイプにタグを設定します。 |
|
プロシージャ |
ALTER PROCEDURE ステートメントを使用して、ストアドプロシージャにタグを設定します。 |
|
ステージ |
ALTER STAGE ステートメントを使用して、ステージにタグを設定します。 |
|
ストリーム |
||
テーブル |
||
タスク |
ALTER TASK ステートメントを使用して、タスクにタグを設定します。 |
|
ビュー |
||
テーブルまたはビュー |
列 |
タグ値の指定¶
ALLOWED_VALUES
タグプロパティを使用すると、タグが オブジェクト に設定されている場合に、タグに割り当てることができる選択可能な文字列値を指定できます。1つのタグで可能な文字列値の最大数は50です。
これらの値は、タグを作成または CREATE TAG ステートメントで置き換えるとき、または既存のタグキーを ALTER TAG ステートメントで変更するときに指定できます。ALTER TAG ステートメントは、タグの許可された値の追加 および タグに対する既存の値のドロップをサポートしています。
タグに許可される値のリストを決定するには、 GET_DDL 関数を呼び出します。
例:
許可された2つの文字列値として
'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'; | +------------------------------------------------------------------------------+
cost_center
という名前のタグを変更して、許可された文字列値として'marketing'
を追加します。alter tag cost_center add allowed_values 'marketing';
cost_center
という名前のタグを変更して、許可された文字列値として'engineering'
をドロップします。alter tag cost_center drop allowed_values 'engineering';
特定のタグで許可された文字列値のリストを取得するには、 GET_DDL 関数または SYSTEM$GET_TAG_ALLOWED_VALUES 関数を呼び出します。たとえば、タグ cost_center
が governance
という名前のデータベースと 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つ以上のアカウントがあります。
プライマリデータベースに含まれるオブジェクトには、別のデータベースにあるタグへの ダングリングリファレンス がある。
ダングリングリファレンスエラーを回避するには、 複製またはフェールオーバーグループ を使用して、データベースとアカウントレベルのオブジェクトを複製します。複製グループに次が含まれていることを確認します。
ALLOWED_DATABASES
プロパティのタグを含むデータベース。OBJECT_TYPES
プロパティにタグを持つその他のアカウントレベルのオブジェクト(例:ROLES
、WAREHOUSES
)。詳細については、 CREATE REPLICATION GROUP および CREATE FAILOVER GROUP をご参照ください。
注釈
複製/フェールオーバーグループまたはデータベース複製を使用する場合、
フェールオーバー/フェールバック機能は、Business Critical Edition(またはそれ以上)のSnowflakeアカウントでのみ利用できます。
詳細については、 アカウント複製およびフェールオーバーの概要 をご参照ください。
複製またはフェールオーバーグループのために、 ALTER DATABASE ステートメント内、または CREATE OR ALTER ステートメント内でデータベース複製の
IGNORE EDITION CHECK
句を指定すると、ターゲットアカウントのエディションが Business Critical よりも下位の場合にタグの複製が発生する可能性があります。詳細については、これらのコマンドにある句の説明をご参照ください。
クローニング¶
ソースオブジェクト(例: テーブル)にあるタグの関連付けは、クローンされたオブジェクトで維持されます。
データベースまたはスキーマの場合は、
そのデータベースまたはスキーマに保存されているタグもクローンされます。
データベースまたはスキーマがクローンされると、そのスキーマまたはデータベースに存在するタグもクローンされます。
テーブルまたはビューがソーススキーマ/データベースに存在し、同じスキーマまたはデータベースにあるタグへの参照がある場合、クローンされたテーブルまたはビューは、ソーススキーマまたはデータベースにあるタグの代わりに、対応するクローンタグ(ターゲットスキーマ/データベース内)にマップされます。
データ共有¶
共有ビューとタグが異なるデータベースに存在する場合は、タグを含むデータベースに対する REFERENCE_USAGE 権限を共有に付与します。詳細については、 複数のデータベースのデータの共有 をご参照ください。
データ共有のコンシューマーアカウントで、
SHOW TAGS コマンドを実行するロールが共有タグを含むスキーマに対する USAGE 権限を持っている場合は、 SHOW TAGS を実行すると共有タグが返されます。
データ共有プロバイダーアカウントのタグが共有テーブルに割り当てられている場合、データ共有コンシューマーは、 SYSTEM$GET_TAG 関数または TAG_REFERENCES Information Schemaテーブル関数を呼び出して、タグの割り当てを表示することはできません。
タグの使用¶
以下は、Snowflakeでタグを使用するための概要です。
カスタムロールを定義し、権限を割り当てます。
ユーザーにカスタムロールを付与します。
CREATE TAG ステートメントを使用してタグを作成します。
ALTER <オブジェクト> コマンドを使用して、タグを 既存の Snowflakeオブジェクトに割り当てます。
代わりに、 CREATE <オブジェクト> コマンドを使用して、タグを 新しい オブジェクトに割り当てることもできます。
テーブル関数とビューを介してタグを追跡します。
簡単にするために、これらのステップでは、タグに対する集中管理アプローチを想定しています。ここで、 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 コマンドを使用します。1つのステートメントで、複数のタグを設定または設定解除できます。
-- 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: タグを追跡する¶
タグの使用状況は、2つの異なるAccount Usageビュー、2つのInformation Schemaテーブル関数、Account Usageテーブル関数、およびシステム関数を介して追跡できます。
タグの使用状況を追跡する方法を決定するために、2つの一般的なアプローチを考えると役立つ場合があります。
タグを検出またはリストします。
タグとオブジェクトの間の割り当て(つまり、参照)を識別します。
- タグを検出する
Snowflakeは、タグをリストし、特定のタグキーのタグ文字列値を識別するための次のオプションをサポートしています。
アカウント内のタグを特定します。
共有 SNOWFLAKE データベースのAccount Usageスキーマで TAGS ビューを使用します。このビューは、Snowflakeアカウント内にあるすべてのタグの カタログ と見なすことができ、現在のタグと削除されたタグに関する情報を提供します。例:
select * from snowflake.account_usage.tags order by tag_name;
指定のタグの値を特定します。
指定されたタグ、およびSnowflakeオブジェクトまたは列に割り当てられたタグ値を返すには、 SYSTEM$GET_TAG システム関数を使用します。
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 をサポートしています。
ALTER <オブジェクト> (Snowflakeオブジェクトにタグを設定するため)
Snowflakeは、タグオブジェクトの describe 操作をサポートしていないことに注意してください。
DDL コマンド、操作、および権限の概要¶
次のテーブルは、タグ権限と DDL 操作の関係をまとめたものです。
操作 |
必要な権限 |
---|---|
テーブルの作成。 |
同じスキーマ内の CREATE TAG 権限を持つロール。 |
タグの変更。 |
タグに対する OWNERSHIP 権限を持つロール。 |
タグのドロップおよびドロップ解除。 |
タグに対する OWNERSHIP 権限と、タグが存在するデータベースおよびスキーマに対する USAGE 権限を持つロール。 |
タグの表示。 |
次のいずれか: . タグが存在するスキーマに対する USAGE 権限を持つロール、 または . ACCOUNT 許可で APPLY TAG 権限を持つロール。 |
オブジェクトのタグの設定または設定解除。 |
個々のオブジェクトの場合、アカウントに対する APPLY TAG 権限、 または タグに対する APPLY TAG 権限と、タグが設定されているオブジェクトに対する OWNERSHIP 権限を持つロール。 サポートされているオブジェクト をご参照ください。 |
列のタグの設定または設定解除。 |
アカウントに対する APPLY TAG 権限を持つロール、 または タグに対する APPLY 権限とテーブルまたはビューに対する OWNERSHIP 権限を持つロール。 |
オブジェクトでのタグの取得。 |
SYSTEM$GET_TAG、 TAG_REFERENCES、 TAG_REFERENCES_WITH_LINEAGE をご参照ください。 |
Snowflakeは、オブジェクトにタグを作成および設定するためのさまざまな権限をサポートしています。
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;
ハイブリッド型管理アプローチでは、単一のロールにCREATE TAG権限があり、タグに一貫した名前が付けられ、個々のチームまたはロールに特定のタグのAPPLY権限があります。
たとえば、カスタムロール
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;