動的テーブルのアクセス制御¶
このトピックでは、動的テーブルの作成、クエリ、変更、表示、ドロップなどの操作を実行するために必要な権限について説明します。
動的テーブルへのフルアクセスをユーザーに提供するには、次のいずれかを実行します。
動的テーブルの OWNERSHIP をロール に付与します。
動的テーブルの OWNERSHIP を除くすべての権限をロール に付与します。
Snowflake権限モデルの詳細については、 アクセス制御の概要 および アクセス制御権限 をご参照ください。
動的テーブルを作成する権限¶
動的テーブルを作成するには、次の権限を持つロールを使用する必要があります。
権限 |
オブジェクト |
---|---|
CREATE DYNAMIC TABLE |
動的テーブルの作成を予定のスキーマ。 |
SELECT |
新しい動的テーブルに対してクエリを実行する予定の既存のテーブルとビュー。 |
USAGE |
新しい動的テーブルに使用する予定のデータベースとスキーマ。 テーブルのリフレッシュに使用する予定のウェアハウス。 |
別の動的テーブルに依存する動的テーブルを作成するには、次の権限を持つロールを使用する必要があります。
権限 |
オブジェクト |
---|---|
SELECT |
新しい動的テーブルを作成するためにクエリを実行する予定の動的テーブル。 |
OPERATE |
新しい動的テーブルが依存するすべての上流の動的テーブル。動的テーブルの作成時に同期的にリフレッシュするように設定した場合にのみ必要です。 |
動的テーブルをクエリする権限¶
動的テーブルにクエリするには、 権限を持つロールを使用して、動的テーブル を作成します。ユーザーが動的テーブルのみをクエリする必要があるシナリオ(データアナリストなど)では、次の権限を持つロールを使用します。
権限 |
オブジェクト |
---|---|
USAGE |
動的テーブルを含むデータベースとスキーマ。 テーブルをリフレッシュするためのウェアハウス。 |
SELECT |
クエリされる動的テーブル。 |
動的テーブルを変更する権限¶
動的テーブルを変更するには、その動的テーブルの OWNERSHIP または OPERATE 権限を持つロールを使用する必要があります。
動的テーブルで OPERATE 権限を持っている場合、 ALTER DYNAMIC TABLE コマンドで次を実行できます。
ALTER ... SUSPEND を使用して動的テーブルを中断します。
ALTER ... RESUME を使用して動的テーブルを再開します。
ALTER ... REFRESH を使用して動的テーブルをリフレッシュします。
ALTER ... SET を使用してウェアハウスおよび/またはターゲットラグを設定または変更します。
動的テーブルのメタデータを表示する権限¶
動的テーブルのメタデータと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 権限を持つロールを使用する必要があります。