動的テーブルのアクセス制御¶
このトピックでは、動的テーブルの作成、クエリ、変更、表示、削除などの操作を実行するために必要な権限について説明します。
Snowflake権限モデルの詳細については、 アクセス制御の概要 および アクセス制御権限 をご参照ください。
所有権の譲渡¶
動的テーブルへのフルアクセスをユーザーに提供するには、次のいずれかを実行します。
動的テーブルの OWNERSHIP をロール に付与します。
動的テーブルの OWNERSHIP を除くすべての権限をロール に付与します。
動的テーブルには通常のテーブルとは異なる権限セットがあるため、付与を割り当てる際には、オブジェクトタイプを DYNAMIC TABLE
に指定します。
動的テーブルに OWNERSHIP 権限を付与するには、受け取りロールが以下の USAGE 権限を持っていることを確認してください。そうしないと、その後のリフレッシュに失敗します。
動的テーブルを含むデータベースとスキーマ。
テーブルのリフレッシュに使用されるウェアハウス。
動的テーブルの所有権を移譲するには、 GRANT OWNERSHIP コマンドまたは Snowsight を使用します。
以下の例では、 GRANT OWNERSHIP コマンドを使用して、 budget_admin
ロールに my_dynamic_table
の所有権権限を付与しています。
GRANT OWNERSHIP ON DYNAMIC TABLE my_dynamic_table TO ROLE budget_admin;
以下の例では、 GRANT OWNERSHIP コマンドを使用して、 mydb.myschema
スキーマで作成された将来のすべての動的テーブルの所有権限を budget_admin
ロールに付与しています。
GRANT OWNERSHIP ON FUTURE DYNAMIC TABLES IN SCHEMA mydb.myschema TO ROLE budget_admin;
Snowsight にサインインします。
ナビゲーションで、 Monitoring » Dynamic Tables に移動します。
所有権を譲渡するロールを選択します。
動的テーブルを作成する権限¶
動的テーブルを作成するには、次の権限を持つロールを使用する必要があります。
権限 |
オブジェクト |
---|---|
CREATE DYNAMIC TABLE |
動的テーブルの作成を予定のスキーマ。 |
SELECT |
新しい動的テーブルに対してクエリを実行する予定の既存のテーブルとビュー。 |
USAGE |
新しい動的テーブルに使用する予定のデータベースとスキーマ。 テーブルのリフレッシュに使用する予定のウェアハウス。 注釈 USAGE 権限を持つセカンダリロールで |
別の動的テーブルに依存する動的テーブルを作成するには、次の権限を持つロールを使用する必要があります。
権限 |
オブジェクト |
---|---|
SELECT |
新しい動的テーブルを作成するためにクエリを実行する予定の動的テーブル。 |
OPERATE |
新しい動的テーブルが依存するすべての上流の動的テーブル。動的テーブルの作成時に同期的にリフレッシュするように設定した場合にのみ必要です。 |
動的テーブルをクエリする権限¶
動的テーブルにクエリするには、 権限を持つロールを使用して、動的テーブル を作成します。ユーザーが動的テーブルのみをクエリする必要があるシナリオ(データアナリストなど)では、次の権限を持つロールを使用します。
権限 |
オブジェクト |
---|---|
USAGE |
動的テーブルを含むデータベースとスキーマ。 クエリの実行に使用されるウェアハウス。 |
SELECT |
クエリされる動的テーブル。 |
動的テーブルを変更する権限¶
動的テーブルを変更するには、その動的テーブルの OWNERSHIP または OPERATE 権限を持つロールを使用する必要があります。
動的テーブルで OPERATE 権限を持っている場合、 ALTER DYNAMIC TABLE コマンドで次を実行できます。
ALTER ... SUSPEND を使用して動的テーブルを中断します。
ALTER ... RESUME を使用して動的テーブルを再開します。
ALTER ... REFRESH を使用して動的テーブルをリフレッシュします。
ALTER ... SET を使用してウェアハウスおよび/またはターゲットラグを設定または変更します。
動的テーブルの OWNERSHIP 権限を持っている場合、上記の操作に加えて以下のことができます。
ALTER ... RENAME TO を使って動的テーブルの名前を変更します。
クラスタリングキーを指定または削除します。 クラスタリングアクション(clusteringAction) をご参照ください。
ガバナンスポリシーの変更。 データガバナンス方針とタグアクション(dataGovnPolicyTagAction) をご参照ください。
検索最適化を変更します。 検索最適化アクション(searchOptimizationAction) をご参照ください。
動的テーブルのメタデータを表示する権限¶
メタデータを表示するには、その動的テーブルの MONITOR 権限を持つロールを使用する必要があります。
ユーザーが動的テーブルのメタデータとInformation Schemaを表示する必要があるだけのシナリオ(例えば、データサイエンティストが持つロール)では、その動的テーブルの MONITOR 権限を持つロールを使用してください。OPERATE 権限ではこのアクセス権が付与されますが、動的テーブルを変更する機能も含まれているため、ユーザーが動的テーブルを変更する必要のないシナリオでは MONITOR 権限の方が適しています。
動的テーブルで MONITOR 権限を持っている場合、次を実行できます。
DESCRIBE DYNAMIC TABLE コマンドと Snowsight 動的テーブルの詳細ページを使用して、動的テーブルの特定の詳細を表示します。動的テーブルで SELECT 権限のみを持つ場合、次のフィールドは非表示になります:
text
、warehouse
、scheduling_state
、last_suspended_on
、suspend_reason_code
(UI のみ)。どの動的テーブルにアクセスできるかを表示するには、 SHOW DYNAMIC TABLES コマンドを使用します。
グラフの履歴を表示するには、 DYNAMIC_TABLE_GRAPH_HISTORY テーブル関数を呼び出します。
リフレッシュ履歴を表示するには、 DYNAMIC_TABLE_REFRESH_HISTORY テーブル関数を呼び出します。
動的テーブルをドロップする権限¶
動的テーブルをドロップするには、その動的テーブルに対して OWNERSHIP 権限を持つロールを使用する必要があります。