アクセス制御権限

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

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

ビューを操作するには、親データベースとスキーマでの 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 権限も必要です。

シーケンス権限

権限

使用法

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 権限を持っている必要があります。詳細については、外部関数に関するドキュメントの アクセス制御 をご参照ください。