アクセス制御権限

このトピックでは、Snowflakeアクセス制御モデルで使用可能な権限について説明します。システム内のオブジェクトに対してユーザーが実行できる操作を指定するために、ロールに権限が付与され、ユーザーにロールが付与されます。

このトピックの内容:

すべての権限(アルファベット順)

Snowflakeアクセス制御モデルでは、次の権限を使用できます。各権限の意味は、適用されるオブジェクトの種類によって異なり、すべてのオブジェクトがすべての権限をサポートしているわけではありません。

権限

オブジェクト型

説明

ALL [ PRIVILEGES ]

すべて

指定されたオブジェクトタイプのすべての権限を付与します。

APPLY MASKING POLICY

グローバル

Grants ability to set a Column-level Security masking policy on a table or view column.

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

テーブル

所有するロール以外のロールが共有データベースにアクセスできるようにする機能を付与します。共有データベースにのみ適用されます。

INSERT

テーブル

テーブルで INSERT コマンドを実行する権限を付与します。

MANAGE GRANTS

グローバル

呼び出しロールがオブジェクトの所有者であるかのように、オブジェクトの権限を付与または取り消す機能を付与します。

MODIFY

リソースモニター、ウェアハウス、データベース、スキーマ

オブジェクトの設定またはプロパティを変更する機能を許可します(例:仮想ウェアハウスで、仮想ウェアハウスのサイズを変更する機能を提供)

MONITOR

リソースモニター、ウェアハウス、データベース、スキーマ、タスク

オブジェクト内の詳細を表示する権限を付与します(例:ウェアハウス内のクエリや使用法)。

MONITOR EXECUTION

グローバル

アカウント内のタスクの実行を監視する権限を付与します。

MONITOR USAGE

グローバル

データベースおよびウェアハウスのアカウントレベルの使用法と履歴情報を監視する機能を付与します。詳細については、 非アカウント管理者の有効化による使用量と請求履歴の監視 をご参照ください。さらに、 SHOW MANAGED ACCOUNTS を使用して管理アカウントを表示する機能を付与します。

OPERATE

ウェアハウス、タスク

仮想ウェアハウスを開始、停止、一時停止、または再開する権限を付与します。タスクを中断または再開する権限を付与します。

OWNERSHIP

すべて

オブジェクトへのアクセスを削除、変更、付与または取り消す機能を付与します。オブジェクトの名前を変更するために必要です。OWNERSHIP は、オブジェクトを作成したロールに自動的に付与されるオブジェクトに対する特別な権限ですが、所有ロール(または MANAGE GRANTS 権限のある任意のロール)によって GRANT OWNERSHIP コマンドを使用して別のロールに譲渡することもできます。

REFERENCES

テーブル

テーブルを外部キー制約の一意/プライマリキーテーブルとして参照する機能を付与します。

SELECT

テーブル、外部テーブル、ビュー、ストリーム

テーブル/ビューで SELECT ステートメントを実行する権限を付与します。

TRUNCATE

テーブル

テーブルで TRUNCATE TABLE コマンドを実行する機能を付与します。

UPDATE

テーブル

テーブルで UPDATE コマンドを実行する権限を付与します。

USAGE

ウェアハウス、データベース、スキーマ

オブジェクトに対して USE <object> コマンドを実行する権限を付与します。また、データベースまたはスキーマ内のオブジェクトに対して SHOW <オブジェクト> コマンドを実行する機能を付与します。ただし、実行中のロールにもそのオブジェクトに対する少なくとも1つの権限がある場合にのみ、含まれるオブジェクトが出力にリストされます。

このトピックの残りのセクションでは、各タイプのオブジェクトで使用可能な特定の権限とその使用法について説明します。

グローバル権限

権限

使用法

メモ

APPLY MASKING POLICY

グローバル

Grants ability to set a Column-level Security masking policy on a table or view column.

CREATE USER

新しいユーザーを作成できるようにします。

CREATE ROLE

新しいロールを作成できるようにします。

MANAGE GRANTS

ロールが所有者ではないオブジェクトで付与を変更できるようにします。

CREATE WAREHOUSE

新しい仮想ウェアハウスを作成できるようにします。

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 を使用して、 EXTERNAL_OAUTH_ANY_ROLE_MODE パラメーターを使用するように外部 OAuth セキュリティ統合を構成します。

データベース権限

権限

使用法

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 コマンドを実行できるようにします。また、 RECLUSTER 句を指定した ALTER TABLE コマンドを使用して、クラスタリングキーでテーブルを手動で再クラスター化することもできます。

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 権限は不要です。これは、ビューを使用して、ロールにテーブルのサブセットのみへのアクセスを付与できることを意味します。例えば、同じテーブル内の医療診断情報ではなく医療請求情報にアクセスするビューを作成し、そのビューに対する権限を「会計士」ロールに付与して、会計士が患者の診断を表示せずに請求情報を確認できるようにすることができます。

ビューを操作するには、親データベースとスキーマでの USAGE 権限も必要です。

ステージ権限

権限

使用法

USAGE

SQL ステートメントで外部ステージオブジェクトを使用できるようにします。内部ステージには適用されません。

READ

内部ステージ(GETLISTCOPY INTO <テーブル> など)からの読み取りを必要とする操作を実行できるようにします。外部ステージには適用されません。

WRITE

内部ステージ(PUTREMOVECOPY 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 権限も必要です。

その他のデータベースオブジェクト権限(シーケンス、 UDFs)

以下の権限は、シーケンス、ユーザー定義関数(UDFs)、および外部関数に適用されます。

権限

使用法

USAGE

SQL ステートメントで指定されたオブジェクトを利用できるようにします。

ALL [ PRIVILEGES ]

指定されたオブジェクトで OWNERSHIPを除くすべての権限を付与します。

OWNERSHIP

指定されたオブジェクトの所有権を譲渡します。これにより、オブジェクトに対するフル制御が付与されます。オブジェクトを変更するために必要です。

注釈

これらの他のデータベースオブジェクトを操作するには、親データベースとスキーマでの USAGE 権限も必要です。