アクセス制御権限¶
このトピックでは、Snowflakeアクセス制御モデルで使用可能な権限について説明します。システム内のオブジェクトに対してユーザーが実行できる操作を指定するために、ロールに権限が付与され、ユーザーにロールが付与されます。
このトピックの内容:
すべての権限(アルファベット順)¶
Snowflakeアクセス制御モデルでは、次の権限を使用できます。各権限の意味は、適用されるオブジェクトの種類によって異なり、すべてのオブジェクトがすべての権限をサポートしているわけではありません。
権限 |
オブジェクト型 |
説明 |
---|---|---|
ALL [ PRIVILEGES ] |
すべて |
指定されたオブジェクト型のすべての権限を付与します。 |
APPLY MASKING POLICY |
グローバル |
テーブルまたはビューの列に、列レベルのセキュリティマスキングポリシーを設定する機能を付与します。 |
CREATE <オブジェクト型> |
グローバル、データベース、スキーマ |
<オブジェクト型> のオブジェクトを作成する権限を付与します(例: CREATE TABLE はスキーマ内にテーブルを作成する権限を付与)。 |
CREATE ACCOUNT |
グローバル |
管理アカウントを作成する機能を付与します。現在は、コンシューマーとデータを共有するためのリーダーアカウントを作成するデータプロバイダーのみに適用されます。 |
CREATE SHARE |
グローバル |
共有を作成する機能を付与します。他のアカウントとデータを共有するためのデータプロバイダーに適用されます。 |
DELETE |
テーブル |
テーブルで DELETE コマンドを実行する権限を付与します。 |
EXECUTE TASK |
グローバル |
ロールが所有するタスクを実行する権限を付与します。 |
IMPORT SHARE |
グローバル |
アカウントと共有されている共有を表示し、共有からデータベースを作成する機能を付与します。データコンシューマーに適用されます。 |
OVERRIDE SHARE RESTRICTIONS |
グローバル |
Business Criticalプロバイダーアカウントが、コンシューマーアカウント(Business Critical以外のエディション)を共有に追加できるようにする、SHARE_RESTRICTIONS パラメーターの値を設定する機能を付与します。詳細については、 Business CriticalアカウントからBusiness Critical以外のアカウントへの共有を有効にする をご参照ください。 |
IMPORTED PRIVILEGES |
データベース、Data Exchange |
所有するロール以外のロールが共有データベースにアクセス、またはSnowflake Data MarketplaceまたはData Exchangeを管理できるようにする権限を付与します。 |
INSERT |
テーブル |
テーブルで INSERT コマンドを実行する権限を付与します。 |
MANAGE GRANTS |
グローバル |
呼び出しロールがオブジェクトの所有者であるかのように、オブジェクトの権限を付与または取り消す機能を付与します。 |
MODIFY |
リソースモニター、ウェアハウス、Data Exchangeリスト、データベース、スキーマ |
オブジェクトの設定またはプロパティを変更する権限を付与します(例: 仮想ウェアハウスで、仮想ウェアハウスのサイズを変更する機能を提供)。 |
MONITOR |
リソースモニター、ウェアハウス、データベース、スキーマ、タスク |
オブジェクト内の詳細を表示する権限を付与します(例:ウェアハウス内のクエリや使用法)。 |
MONITOR EXECUTION |
グローバル |
アカウント内のタスクの実行を監視する権限を付与します。 |
MONITOR USAGE |
グローバル |
データベースおよびウェアハウスのアカウントレベルの使用法と履歴情報を監視する機能を付与します。詳細については、 非アカウント管理者の有効化による使用量と請求履歴の監視 をご参照ください。さらに、 SHOW MANAGED ACCOUNTS を使用して管理アカウントを表示する機能を付与します。 |
OPERATE |
ウェアハウス、タスク |
仮想ウェアハウスを開始、停止、一時停止、または再開する権限を付与します。タスクを中断または再開する権限を付与します。 |
OWNERSHIP |
すべて |
オブジェクトへのアクセスを削除、変更、付与または取り消す機能を付与します。オブジェクトの名前を変更するために必要です。OWNERSHIP は、オブジェクトを作成したロールに自動的に付与されるオブジェクトに対する特別な権限ですが、所有ロール(または MANAGE GRANTS 権限のある任意のロール)によって GRANT OWNERSHIP コマンドを使用して別のロールに譲渡することもできます。 |
REFERENCES |
テーブル |
テーブルを外部キー制約の一意/プライマリキーテーブルとして参照する機能を付与します。 |
SELECT |
テーブル、外部テーブル、ビュー、ストリーム |
テーブル/ビューで SELECT ステートメントを実行する権限を付与します。 |
TRUNCATE |
テーブル |
テーブルで TRUNCATE TABLE コマンドを実行する機能を付与します。 |
UPDATE |
テーブル |
テーブルで UPDATE コマンドを実行する権限を付与します。 |
USAGE |
ウェアハウス、Data Exchangeリスト、データベース、スキーマ |
オブジェクトに対して USE <object> コマンドを実行する権限を付与します。また、データベースまたはスキーマ内のオブジェクトに対して SHOW <オブジェクト> コマンドを実行する機能を付与します。ただし、実行中のロールもそのオブジェクトに対して少なくとも1つの権限を持つ場合にのみ、含まれるオブジェクトが出力にリストされます。 |
このトピックの残りのセクションでは、各タイプのオブジェクトで使用可能な特定の権限とその使用法について説明します。
グローバル権限¶
権限 |
使用法 |
メモ |
---|---|---|
APPLY MASKING POLICY |
グローバル |
テーブルまたはビューの列に、列レベルのセキュリティマスキングポリシーを設定する機能を付与します。 |
CREATE USER |
新しいユーザーを作成できるようにします。 |
|
CREATE ROLE |
新しいロールを作成できるようにします。 |
|
MANAGE GRANTS |
ロールが所有者ではないオブジェクトで付与を変更できるようにします。 |
|
CREATE WAREHOUSE |
新しい仮想ウェアハウスを作成できるようにします。 |
ACCOUNTADMINロールによって付与される必要があります。 |
CREATE DATA EXCHANGE LISTING |
新しいData Exchangeリストの作成を有効にします。 |
ACCOUNTADMINロールによって付与される必要があります。 |
CREATE DATABASE |
新しいデータベース、または既存のデータベースの複製を作成できるようにします。 |
ACCOUNTADMINロールによって付与される必要があります。 |
CREATE INTEGRATION |
新しい通知、セキュリティ、またはストレージ統合を作成できるようにします。 |
ACCOUNTADMINロールによって付与される必要があります。 |
EXECUTE TASK |
ロールが所有するタスクを実行する権限を付与します。 |
ACCOUNTADMINロールによって付与される必要があります。 |
MONITOR EXECUTION |
アカウント内のタスクの実行を監視する権限を付与します。 |
ACCOUNTADMINロールによって付与される必要があります。 |
CREATE SHARE |
データプロバイダーが新しい共有を作成できるようにします。詳細については、 ACCOUNTADMIN 以外のロールによる、データ共有タスクの実行の有効化 をご参照ください。 |
ACCOUNTADMINロールによって付与される必要があります。 |
IMPORT SHARE |
データコンシューマーがアカウントで共有されている共有を表示し、共有からのデータベースを作成できるようにします。詳細については、 ACCOUNTADMIN 以外のロールによる、データ共有タスクの実行の有効化 をご参照ください。 |
ACCOUNTADMINロールによって付与される必要があります。 |
OVERRIDE SHARE RESTRICTIONS |
Business Criticalプロバイダーアカウントが、コンシューマーアカウント(Business Critical以外のエディション)を共有に追加できるようにする、SHARE_RESTRICTIONS パラメーターの値を設定する機能を付与します。 |
詳細については、 Business CriticalアカウントからBusiness Critical以外のアカウントへの共有を有効にする をご参照ください。 |
CREATE ACCOUNT |
データプロバイダーが新しい管理アカウント(つまり、リーダーアカウント)を作成できるようにします。詳細については、 リーダーアカウントの管理 をご参照ください。 |
ACCOUNTADMINロールによって付与される必要があります。 |
MONITOR USAGE |
データベースおよびウェアハウスのアカウントレベルの使用法と履歴情報を監視する機能を付与します。詳細については、 非アカウント管理者の有効化による使用量と請求履歴の監視 をご参照ください。さらに、 SHOW MANAGED ACCOUNTS を使用して管理アカウントを表示する機能を付与します。 |
ACCOUNTADMINロールによって付与される必要があります。 |
ALL [ PRIVILEGES ] |
すべてのグローバル権限を付与します。 |
ユーザーとロールの権限¶
権限 |
使用法 |
---|---|
OWNERSHIP |
ユーザー/ロールに対する包括的な制御を付与します。 |
MONITOR |
ユーザーのみ。 ユーザーのログイン履歴を表示する権限を付与します。 |
リソースモニター権限¶
権限 |
使用法 |
---|---|
MODIFY |
月次クレジットクォータの変更など、リソースモニターのプロパティを変更できるようにします。 |
MONITOR |
リソースモニターを表示できるようにします。 |
仮想ウェアハウス権限¶
権限 |
使用法 |
---|---|
MODIFY |
サイズの変更など、ウェアハウスのプロパティを変更できるようにします。 |
MONITOR |
ウェアハウスで実行された現在および過去のクエリと、そのウェアハウスでの使用法統計を表示できるようにします。 |
OPERATE |
ウェアハウスの状態(停止、開始、一時停止、再開)を変更し、実行中のクエリを中止できるようにします。 |
USAGE |
仮想ウェアハウスを使用し、その結果として、ウェアハウスでクエリを実行します。 |
ALL [ PRIVILEGES ] |
ウェアハウスで、 OWNERSHIP を除くすべての権限を付与します。 |
OWNERSHIP |
ウェアハウスの所有権を譲渡し、ウェアハウスを完全に制御できるようにします。 |
統合権限¶
権限 |
使用法 |
---|---|
USAGE |
ステージの作成時( CREATE STAGE を使用)またはステージの変更時( ALTER STAGE を使用)に、ストレージ統合を参照できるようにします。 |
USE_ANY_ROLE |
この権限がクライアントまたはユーザーに付与されている場合のみ、外部 OAuth クライアントまたはユーザーは、ロールを切り替えることができます。 CREATE SECURITY INTEGRATION または ALTER SECURITY INTEGRATION を使用して、 |
Data Exchange権限¶
権限 |
使用法 |
---|---|
IMPORTED PRIVILEGES |
所有するロール以外のロールがSnowflake Data MarketplaceまたはDataExchangeを管理できるようにします。 |
Data Exchangeリスト権限¶
注釈
現在、Data Exchangeリストに対する権限は、Snowflakeウェブインターフェイスでのみ付与できます。手順については、 他のロールに権限を付与 をご参照ください。
権限 |
使用法 |
---|---|
MODIFY |
所有するロール以外のロールがSnowflake Data MarketplaceまたはDataExchangeリストを変更できるようにします。 |
USAGE |
Snowflake Data MarketplaceまたはDataExchangeリストを表示できるようにします。 |
OWNERSHIP |
Snowflake Data MarketplaceまたはDataExchangeリストの所有権を譲渡します。これにより、リストのフルコントロールを付与します。 |
ALL [ PRIVILEGES ] |
Snowflake Data MarketplaceまたはDataExchangeリストでOWNERSHIPを除くすべての権限を付与します。 |
データベース権限¶
権限 |
使用法 |
---|---|
MODIFY |
データベースの設定を変更できるようにします。 |
MONITOR |
データベースで DESCRIBE コマンドを実行できるようにします。 |
USAGE |
データベースを使用できるようにします。データベース内のオブジェクトを表示またはアクションを実行するには、追加の権限が必要です。 |
CREATE SCHEMA |
スキーマの複製など、データベースでの新しいスキーマを作成できるようにします。 |
IMPORTED PRIVILEGES |
所有するロール以外のロールが共有データベースにアクセスできるようにします。共有データベースにのみ適用されます。 |
ALL [ PRIVILEGES ] |
データベースで OWNERSHIPを除くすべての権限を付与します。 |
OWNERSHIP |
データベースの所有権を譲渡します。これにより、データベースに対するフル制御が付与されます。 |
コメントを含むデータベースのプロパティを変更するには、データベースの OWNERSHIP 権限が必要です。
スキーマ権限¶
権限 |
使用法 |
---|---|
MODIFY |
スキーマの設定を変更できるようにします。 |
MONITOR |
スキーマで DESCRIBE コマンドを実行できるようにします。 |
USAGE |
SHOW SCHEMAS コマンドを実行してデータベース内のスキーマの詳細をリストするなど、スキーマを使用できるようにします。 |
スキーマ内のオブジェクト(テーブル、ビュー、ステージ、ファイル形式、シーケンス、パイプ、または関数)に対して SHOW <オブジェクト> コマンドを実行するには、ロールにはオブジェクトに対して少なくとも1つの権限が付与されている必要があります。 |
|
CREATE TABLE |
テーブルの複製など、スキーマで新しいテーブルを作成できるようにします。この権限は、現在のユーザーセッションにスコープされ、セッションの終了時に自動的に削除される一時テーブルを作成するためには 不必要 であることに注意してください。 |
CREATE EXTERNAL TABLE |
スキーマで新しい外部テーブルを作成できるようにします。 |
CREATE VIEW |
スキーマで新しいビューを作成できるようにします。 |
CREATE MATERIALIZED VIEW |
スキーマで新しいマテリアライズドビューを作成できるようにします。 |
CREATE MASKING POLICY |
スキーマで、新しい 列レベルのセキュリティ マスキングポリシーを作成できるようにします。 |
CREATE STAGE |
ステージの複製など、スキーマで新しいステージを作成できるようにします。 |
CREATE FILE FORMAT |
ファイル形式の複製など、スキーマで新しいファイル形式を作成できるようにします。 |
CREATE SEQUENCE |
シーケンスの複製など、スキーマで新しいシーケンスを作成できるようにします。 |
CREATE FUNCTION |
スキーマに新しい UDF または外部関数を作成できるようにします。 |
CREATE PIPE |
スキーマで新しいパイプを作成できるようにします。 |
CREATE STREAM |
ストリームの複製など、スキーマで新しいストリームを作成できるようにします。 |
CREATE TASK |
タスクの複製など、スキーマで新しいタスクを作成できるようにします。 |
CREATE PROCEDURE |
スキーマで新しいストアドプロシージャを作成できるようにします。 |
ALL [ PRIVILEGES ] |
スキーマで OWNERSHIP を除くすべての権限を付与します。 |
OWNERSHIP |
スキーマの所有権を譲渡します。これにより、スキーマに対するフル制御が付与されます。 |
注釈
コメントを含むスキーマのプロパティを変更するには、データベースの OWNERSHIP 権限が必要です。
スキーマの操作には、親データベースでの USAGE 権限も必要です。
テーブル権限¶
権限 |
使用法 |
---|---|
SELECT |
テーブルで SELECT ステートメントを実行できるようにします。 |
INSERT |
テーブルで INSERT コマンドを実行できるようにします。また、 |
UPDATE |
テーブルで UPDATE コマンドを実行できるようにします。 |
TRUNCATE |
テーブルで TRUNCATE TABLE コマンドを実行できるようにします。 |
DELETE |
テーブルで DELETE コマンドを実行できるようにします。 |
REFERENCES |
テーブルを外部キー制約の一意/プライマリキーテーブルとして参照できるようにします。また、テーブルの構造を表示することもできます(データは除く)。 |
ALL [ PRIVILEGES ] |
テーブルで OWNERSHIP を除くすべての権限を付与します。 |
OWNERSHIP |
テーブルの所有権を譲渡します。これにより、テーブルに対するフル制御が付与されます。再クラスタリングを除き、テーブルのほとんどのプロパティを変更するために必要です。 |
注釈
テーブルを操作するには、親データベースとスキーマでの USAGE 権限も必要です。
外部テーブル権限¶
権限 |
使用法 |
---|---|
SELECT |
外部テーブルで SELECT ステートメントを実行できるようにします。 |
ALL [ PRIVILEGES ] |
外部テーブルで OWNERSHIPを除くすべての権限を付与します。 |
OWNERSHIP |
ビューの所有権を譲渡します。これにより、外部テーブルに対するフル制御が付与されます。外部テーブルを更新するために必要です。 |
注釈
外部テーブルを操作するには、親データベースとスキーマでの USAGE 権限も必要です。
ビュー権限¶
次の権限は、標準ビューとマテリアライズドビューの両方に適用されます。
権限 |
使用法 |
---|---|
SELECT |
ビューで SELECT ステートメントを実行できるようにします。 |
ALL [ PRIVILEGES ] |
ビューで OWNERSHIPを除くすべての権限を付与します。 |
OWNERSHIP |
ビューの所有権を譲渡します。これにより、ビューに対するフル制御が付与されます。ビューを変更するために必要です。 |
注釈
ビューで SELECT 権限のあるユーザーは、ビューが使用するテーブルでの SELECT 権限は不要です。これは、ビューを使用して、ロールに対しテーブルのサブセットのみへのアクセスを付与できることを意味します。たとえば、同じテーブル内に医療診断情報ではなく医療請求情報にアクセスするビューを作成し、そのビューに対する権限を ACCOUNTANT ロールに付与して、会計士が患者の診断を表示せずに請求情報を確認できるようにします。
ビューを操作するには、親データベースとスキーマでの USAGE 権限も必要です。
ステージ権限¶
権限 |
使用法 |
---|---|
USAGE |
SQL ステートメントで外部ステージオブジェクトを使用できるようにします。内部ステージには適用されません。 |
READ |
内部ステージ(GET、 LIST、 COPY INTO <テーブル> など)からの読み取りを必要とする操作を実行できるようにします。外部ステージには適用されません。 |
WRITE |
内部ステージ(PUT、 REMOVE、 COPY INTO <場所> など)への書き込みが必要な操作を実行できるようにします。外部ステージには適用されません。 |
ALL [ PRIVILEGES ] |
OWNERSHIPを除く、ステージ(内部または外部)に適用可能なすべての権限を付与します。 |
OWNERSHIP |
ステージの所有権を譲渡します。これにより、ステージに対するフル制御が付与されます。 |
注釈
内部ステージに READ 権限と WRITE 権限の両方を付与する場合、 READ 権限は WRITE 権限の前か、同時に付与する必要があります。
内部ステージの READ 権限と WRITE 権限の両方を取り消す場合、WRITE 権限は READ 権限の前か、同時に取り消す必要があります。
ステージでの操作には、親データベースとスキーマでの USAGE 権限も必要です。
ファイル形式権限¶
権限 |
使用法 |
---|---|
USAGE |
SQL ステートメントでファイル形式が使用できるようになります。 |
ALL [ PRIVILEGES ] |
ファイル形式で OWNERSHIP を除くすべての権限を付与します。 |
OWNERSHIP |
ファイル形式の所有権を譲渡します。これにより、ファイル形式に対するフル制御が付与されきます。ファイル形式を変更するために必要です。 |
注釈
ファイル形式を操作するには、親データベースとスキーマでの USAGE 権限も必要です。
パイプ権限¶
権限 |
使用法 |
---|---|
OWNERSHIP |
パイプの所有権を譲渡します。これにより、パイプに対するフル制御が付与されます。 Snowpipeを使用してデータをロードするために必要です。 |
注釈
パイプで操作するには、親データベースとスキーマでの USAGE 権限も必要です。
ストリーム権限¶
権限 |
使用法 |
---|---|
SELECT |
ストリームでの SELECT ステートメントを実行できるようにします。 |
OWNERSHIP |
ストリームの所有権を譲渡します。これにより、ストリームに対するフル制御が付与されます。 |
ALL [ PRIVILEGES ] |
ストリームで OWNERSHIPを除くすべての権限を付与します。 |
タスク権限¶
権限 |
使用法 |
---|---|
MONITOR |
タスクの詳細の表示を有効にします( DESCRIBE TASK または SHOW TASKSを使用)。 |
OPERATE |
タスクの詳細の表示( SHOW TASKSを使用)およびタスクの再開または一時停止を有効にします。 |
OWNERSHIP |
タスクの所有権を譲渡します。これにより、タスクに対する包括的な制御が付与されます。 |
マスキングポリシー権限¶
権限 |
使用法 |
---|---|
APPLY |
列レベルのセキュリティ マスキングポリシーの設定解除および設定操作の適用を有効にします。 |
OWNERSHIP |
マスキングポリシーの包括的な制御を許可する、 列レベルのセキュリティ マスキングポリシーの所有権を譲渡します。マスキングポリシーのほとんどのプロパティを変更するために必要です。 |
注釈
マスキングポリシー上で動作するには、親データベースとスキーマでの USAGE 権限も必要です。
シーケンス権限¶
権限 |
使用法 |
---|---|
USAGE |
SQL ステートメントでシーケンスが使用できるようになります。 |
ALL [ PRIVILEGES ] |
シーケンスで OWNERSHIP を除くすべての権限を付与します。 |
OWNERSHIP |
シーケンスの所有権を譲渡します。これにより、シーケンスを完全に制御できます。シーケンスを変更するために必要です。 |
注釈
シーケンスを操作するには、親データベースとスキーマでの USAGE 権限も必要です。
ストアドプロシージャの権限¶
権限 |
使用法 |
---|---|
USAGE |
ストアドプロシージャの呼び出しができるようになります。 |
ALL [ PRIVILEGES ] |
ストアドプロシージャで OWNERSHIP を除くすべての権限を付与します。 |
OWNERSHIP |
ストアドプロシージャの所有権を譲渡します。これにより、ストアドプロシージャを完全に制御できます。ストアドプロシージャを変更するために必要です。 |
注釈
ストアドプロシージャを操作するには、親データベースとスキーマでの USAGE 権限も必要です。
ストアドプロシージャが呼び出し元の権限で実行される場合、ストアドプロシージャを呼び出すユーザーは、ストアドプロシージャがアクセスするデータベースオブジェクト(例:テーブル)に対する権限を持っている必要があります。詳細については、 呼び出し元権限と所有者権限のストアドプロシージャの理解 をご参照ください。
ユーザー定義関数(UDF)および外部関数権限¶
権限 |
使用法 |
---|---|
USAGE |
UDF または外部関数の呼び出しができるようになります。 |
ALL [ PRIVILEGES ] |
UDF または外部関数で OWNERSHIP を除くすべての権限を付与します。 |
OWNERSHIP |
UDF または外部関数の所有権を譲渡します。これにより、オブジェクトを完全に制御できます。UDF または外部関数を変更するために必要です。 |
注釈
UDF または外部関数を操作するには、親データベースとスキーマでの USAGE 権限も必要です。
UDF の所有者は、関数がアクセスするオブジェクトに対する権限を持っている必要があります。UDF を呼び出すユーザーは、これらの権限を必要としません。詳細については、 UDFsのセキュリティ/権限要件 をご参照ください。
外部関数の所有者は、外部関数に関連付けられた API 統合オブジェクトに対する USAGE 権限を持っている必要があります。詳細については、外部関数に関するドキュメントの アクセス制御 をご参照ください。