アクセス制御の構成

このトピックでは、アカウントの セキュリティ保護可能なオブジェクト のアクセス制御セキュリティを構成する方法について説明します。

このトピックの内容:

アカウント管理

アカウント管理者としての追加ユーザーの指定

既定では、各アカウントには、アカウント管理者として指定されたユーザー(つまり、システム定義の ACCOUNTADMIN ロールが付与されたユーザー)が 1 人ずついます。アカウント管理者として少なくとも1人の他のユーザーを指定することをお勧めします。これにより、アカウント管理者の1人がログインできない場合は特に、アカウントレベルのタスクを実行できる少なくとも1人のユーザーがアカウントに常に存在するようになります。

これらの追加のアカウント管理者については、新しいユーザーを作成するか、既存のユーザーを指定するかを選択できますが、必ず次を指定してください。

  • ユーザーに ACCOUNTADMIN ロールを付与しますが、このロールをデフォルトとして設定 しないで ください。代わりに、下位レベルの管理者ロール(例えば、 SYSADMIN)またはカスタムロールを既定のロールとして指定します。これにより、アカウント管理者が誤って ACCOUNTADMIN ロールを使用してオブジェクトを作成することを防止できます。

  • 各ユーザーにメールアドレスが指定されていることを確認します(多要素認証に必要)。

例えば、 user2 という名前の既存のユーザーに ACCOUNTADMIN および SYSADMIN のロールを付与し、既定のロールとして SYSADMIN を指定します。

GRANT ROLE ACCOUNTADMIN, SYSADMIN TO USER user2;

ALTER USER user2 SET EMAIL='user2@domain.com', DEFAULT_ROLE=SYSADMIN;
Copy

アカウント管理者ごとに MFA を有効化

Snowflakeアカウントの最高レベルのセキュリティを確保するため、機密データを変更または表示できるユーザーには、多要素認証(MFA)の使用をログインの必須条件とすることを 強く お勧めします。

この推奨事項は特に ACCOUNTADMIN のロールがあるユーザーに適用されますが、SECURITYADMIN および SYSADMIN のロールがあるユーザーを含むように拡張することもできます。

詳細については、 アクセス制御のベストプラクティス および 多要素認証(MFA) をご参照ください。

カスタムロールの作成

「最小権限」の一般原則に従うために、組織内の ビジネス機能に合わせた カスタムロールを作成して、セキュリティ保護可能なオブジェクトの狭いセットで SQL アクションを許可することをお勧めします。

Snowsight または SQL を使用してカスタムロールを作成できます。

ワークフローは次のとおりです。

  1. カスタムロールを作成します。

  2. ロールに権限のセットを付与します。

  3. ビジネスニーズに合わせて、 SQL アクションを実行するためにロールに付与された権限を必要とする1人以上のユーザーにロールを付与します。

  4. ロールを別のロールに付与して、ロール階層を作成または追加します。必須ではありませんが、このステップを強くお勧めします。詳細については、 ロール階層の作成 をご参照ください。

このセクションでは、 r1 という名前のロールを作成し、そのロールに次の権限を付与する手順について説明します。権限により、セッションでロールをアクティブ化するユーザーは、単一のテーブル d1.s1.t1 をクエリできます。

権限

オブジェクト

注意

USAGE

ウェアハウス w1

データベース d1

スキーマ s1

オブジェクト(テーブルや表示など)にクエリを発行するには、ロールがウェアハウス上で USAGE 権限を持っている必要があります。ウェアハウスは、クエリを実行するためのコンピューティングリソースを提供します。

スキーマ内のオブジェクトを操作するには、コンテナーデータベースとスキーマに対する USAGE 権限もロールに必要です。

SELECT

テーブル t1

ロールが作成された後、そのロールに追加の権限を付与して、そのロールを持つユーザーが同じオブジェクトまたは追加のオブジェクトに対して、追加の SQL アクションを実行できるようにすることができます。

ロールを作成する

ロールを作成できるのは、ユーザ管理者(つまり、 USERADMIN システムロール以上の権限を持つユーザ)か、そのアカウントで CREATE ROLE 権限を持つ別のロールだけです。

SQL:
  1. CREATE ROLE ステートメントを使用して r1 ロールを作成します。

    CREATE ROLE r1
       COMMENT = 'This role has all privileges on schema_1';
    
    Copy
Snowsight:
  1. Snowsight にサインインします。

  2. アカウントにロールを作成する権限を持つロールに切り替えます。

  3. ナビゲーションメニューで、 Admin » Users & Roles を選択してから、 Roles を選択します。

  4. + Role を選択します。

    New Role ダイアログが表示されます。

  5. Name には、ロールの名前を入力します。例: r1

  6. Grant to role では、オプションとして、新しいロールを既存のロールに付与し、既存のロールの権限を継承することを選択します。

  7. オプションでコメントを追加できます。

  8. Create Role を選択します。

ロールへの権限付与

SECURITYADMINロールを使用して、オブジェクトの権限をロールに付与することができます。詳細については、 GRANT <権限> ... TO ROLE をご参照ください。

SQL:
  1. このセクションの前の表で定義された権限を r1 ロールに付与します。

    GRANT USAGE ON WAREHOUSE w1 TO ROLE r1;
    
    GRANT USAGE ON DATABASE d1 TO ROLE r1;
    
    GRANT USAGE ON SCHEMA d1.s1 TO ROLE r1;
    
    GRANT SELECT ON TABLE d1.s1.t1 TO ROLE r1;
    
    Copy
Snowsight:
  1. Snowsight にサインインします。

  2. Data » Databases を選択します。

  3. 特定のデータベースとスキーマの場合、権限を付与するデータベースオブジェクトを選択します。例えば、 d1 というデータベースがあるとします。

  4. Object DetailsPrivileges セクションを見つけます。

  5. + Privilege を選択します。

  6. 権限を付与するロールまたはユーザーを選択します。例: r1 または u1

Tip

ユーザー名、メール、姓名でユーザーを検索できます。

  1. ロールまたはユーザーに付与する権限を選択します。例えば、 USAGE です。

  2. ロールが他のロールやユーザーに権限を付与できるようにしたい場合は、 Grant option のチェックボックスを選択してください。

  3. Grant Privileges を選択します。

この例では、スキーマ s1 に USAGE を、テーブル t1 に SELECT を付与する手順を繰り返します。

ウェアハウス w1 に USAGE を付与するには、以下の手順を実行します。

  1. Snowsight にサインインします。

  2. Admin » Warehouses を選択します。

  3. 権限を付与するウェアハウスを見つけて選択します。例: w1

  4. Privileges セクションで、 + Privilege を選択します。

  5. 権限を付与するロールまたはユーザーを選択します。例: r1 または u1

  6. Privileges では、付与する権限を選択します。例: USAGE。

  7. ロールが他のロールやユーザーに権限を付与できるようにしたい場合は、 Grant option のチェックボックスを選択してください。

  8. Grant Privileges を選択します。

ユーザーにロールを付与する

SECURITYADMINロールを使用して、ユーザにロールを付与できます。その他のオプションについては、 GRANT ROLE をご参照ください。

SQL:
  1. GRANT ROLE ステートメントを使って、ロール r1 ロールをユーザー smith に割り当てます。

    GRANT ROLE r1
       TO USER smith;
    
    Copy
  2. オプションで、新しいカスタムロールをユーザーの既定のロールとして設定します。次回、ユーザーがSnowflakeにログインすると、セッションで既定のロールが自動的にアクティブになります。

    このコマンドを実行できるのは、ユーザーに対する OWNERSHIP 権限を持つロールまたはそれ以上のロールのみです。

    次のコマンドは、ユーザー smith の既定のロールを設定します。

    ALTER USER smith
       SET DEFAULT_ROLE = r1;
    
    Copy
Snowsight:
  1. Snowsight にサインインします。

  2. 権限を持つロールに切り替えると、アカウント内のロールに権限を付与できます。

  3. ナビゲーションメニューで、 Admin » Users & Roles を選択してから、 Roles を選択します。

  4. Table を選択し、作成したロールを探して選択します。

  5. 0 users have been granted R1 セクションで、 Grant to User を選択します。

  6. User to receive grant では、ロールを付与するユーザーを選択します。例: smith

  7. Grant を選択します。

グローバル権限をロールに付与する

ロールにグローバル権限を付与することもできます。ロールに付与可能なグローバル権限のリストについては、 アクセス制御権限 をご参照ください。

SQL:

GRANTPRIVILEGE コマンドを使用します。詳細については 権限管理 をご参照ください。

Snowsight:
  1. Snowsight にサインインします。

  2. 権限を持つロールに切り替えると、アカウント内のロールに権限を付与できます。

  3. ナビゲーションメニューで、 Admin » Users & Roles を選択してから、 Roles を選択します。

  4. Table を選択し、作成したロールを探して選択します。

  5. ロールの詳細ページで、 その他のオプション » Manage global privileges を選択します。

  6. Global privilege to grant の場合、ロールに付与する権限を選択します。

  7. ロールが他のロールに権限を付与できるようにする場合は、 Grant option のチェックボックスを選択します。

  8. Update Privileges を選択します。

読み取り専用カスタムロールの作成

特定のスキーマ(例えば、 d1.s1)の全テーブルのクエリに限定したロールが必要だとします。このロールを使用してコマンドを実行するユーザーは、テーブルデータを更新したり、追加のデータベースオブジェクトを作成したり、テーブルをドロップしたりすることはできません。このロールは、テーブルデータのクエリに限定されています。

読み取り専用ロールを作成するには、 カスタムロールの作成 で説明されている基本的な手順を実行します。 ロールへの権限付与 で、読み取り専用ロール(この説明では read_only)に以下のオブジェクト権限を付与してください。

権限

オブジェクト

注意

USAGE

ウェアハウス

オブジェクト(テーブルや表示など)にクエリを発行するには、ロールがウェアハウス上で USAGE 権限を持っている必要があります。ウェアハウスは、クエリを実行するためのコンピューティングリソースを提供します。

SELECT

テーブル

スキーマ内のオブジェクトを操作するには、コンテナーデータベースとスキーマに対する USAGE 権限もロールに必要です。

GRANT <権限> ステートメントは次のとおりです。

GRANT USAGE
  ON DATABASE d1
  TO ROLE read_only;

GRANT USAGE
  ON SCHEMA d1.s1
  TO ROLE read_only;

GRANT SELECT
  ON ALL TABLES IN SCHEMA d1.s1
  TO ROLE read_only;

GRANT USAGE
  ON WAREHOUSE w1
  TO ROLE read_only;
Copy

注釈

GRANT SELECT ON ALL TABLES IN SCHEMA <スキーマ> ステートメントは、すべての 既存の テーブルに対してのみ SELECT 権限を付与します。すべての 将来 のテーブルに対する SELECT 権限をロールに付与するには、次のステートメントを実行します。

GRANT SELECT ON FUTURE TABLES IN SCHEMA d1.s1 TO ROLE read_only;
Copy

ロール階層の作成

カスタムロールを作成するときは、最終的に高レベルの管理者ロールに割り当てられるロール階層を作成することを検討してください。一般に、SYSADMIN ロールは他のすべてのロールが階層内で割り当てられているロールと同じように機能しますが、十分な権限のあるロールがこの機能を提供できることに注意することが重要です。SYSADMIN ロールは、アカウントでウェアハウス、データベース、およびデータベースオブジェクトを作成し、それらの権限を他のロールに付与する権限があるシステム定義のロールです。デフォルトのシステム階層では、最上位の ACCOUNTADMIN ロールがシステム管理者ロールを管理します。

ロールを2番目のロールに付与して、ロール階層を作成します。その後、その2番目のロールを3番目のロールに付与できます。あるロールに関連付けられた権限は、そのロールよりも階層 のロール(つまり、親ロール)に継承されます。

次の図は、ロール階層の例と各ロールに付与される権限を示しています。

ロールの階層と各ロールに付与される権限

別のロールにロールを付与する

上位レベルの階層のロールに、ロールを割り当てます。この例では、 カスタムロールの作成 で作成された r1 ロールを SYSADMIN ロールに割り当てています。SYSADMIN ロールは、 r1 ロールに付与されたオブジェクト権限を継承します。

SQL:
GRANT ROLE r1
   TO ROLE sysadmin;
Copy
Snowsight:
  1. Snowsight にサインインします。

  2. ナビゲーションメニューで、 Admin » Users & Roles を選択してから、 Roles を選択します。

  3. Table を選択し、別のロールに付与するロールを探します。例: r1

  4. 0 roles have been granted R12 セクションで、 Grant to Role を選択します。

  5. Role to receive grant には、 SYSADMIN を選択します。

  6. Grant を選択します。

注釈

より複雑な例では、 custom ロールを SYSADMIN の別の子ロール(またはデータベースを作成するための十分な権限があるカスタムロールなどの別の管理者ロール)に割り当てることができます。SYSADMIN ロールは、 custom ロールとその親ロールに割り当てられた結合された権限を継承します。階層内の custom の上のロールがオブジェクトを所有している場合、ロール階層により、 SYSADMIN ロールのメンバーもそれらのオブジェクトを(間接的に)所有し、期待どおりに管理できます。

Snowsight のロール階層を詳しく見ていきましょう

Snowsight には、アカウントのロールの階層が表示されたロールのグラフが表示されます。グラフは階層(パス付)の降順で編成され、親ロールから子ロールへの継承を表します。ロールの多いアカウントでは、グラフの読み込みに時間がかかることがあります。

注釈

データベースのロールがロールグラフに表示されません。

ロールグラフを開くには、以下のようにします。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Admin » Users & Roles を選択します。

ロールグラフを表示する際、個々のロールまたはユーザーを選択することができます。詳しく見るには、ズームインおよびズームアウトし、焦点を当てたロールまたはユーザーでグラフを中央揃えにします。

ORGADMIN ロールに焦点を当てたロールグラフを示す画像。 ACCOUNTADMIN ロールがその階層で上に表示され、グローバルなデータ共有に使用されるシステムロール SNOWFLAKE$GDS_RL も表示されます。

ロールを選択すると、ロールの作成日、所有者ロール、ロールに付与されたロールの数、ロールに付与されたロールの数、ロールに付与されたユーザの数、ロールへの付与を管理する機能など、ロールの詳細が表示されます。

ロールの詳細を表示する際、 その他のオプション を選択すると、選択したロールのグラフを中央に表示したり、ロールの詳細ページを開いたりすることができます。

ユーザーへの権限付与

オブジェクトに対して MANAGE GRANTS の権限を持つユーザーは、ユーザーに直接権限を与えることができます。詳細については、 GRANT <権限> ... TO USER をご参照ください。

例えば、Streamlitアプリケーション streamlitApp1 の USAGE 権限を user1 に付与するには、以下のコマンドを実行します。

GRANT USAGE ON WAREHOUSE w1 TO USER user1;

GRANT USAGE ON DATABASE d1 TO USER user1;

GRANT USAGE ON SCHEMA d1.s1 TO USER user1;

GRANT USAGE ON STREAMLIT `streamlitApp1` TO USER user1;
Copy

注釈

ユーザーに直接割り当てられた権限は、そのユーザーがすべてのセカンダリロールを有効にしている場合にのみ有効です。

ユーザーへの権限付与に関する具体的な情報については、 使用上の注意 GRANT <権限> ... TO USER をご参照ください。

UBAC の無効化

私たちは、この新しいアクセス制御モデルがあなたのガバナンスの実践に影響を与える可能性があることを理解しています。バンドル 2025_02 がデフォルトで有効になった 、アカウントで UBAC を無効にする必要がある場合は、 ALTER_ACCOUNT コマンドを使用してアカウントパラメーター DISABLE_USER_PRIVILEGE_GRANTS = TRUE をセットします。例:

ALTER ACCOUNT SET DISABLE_USER_PRIVILEGE_GRANTS = TRUE;
Copy

ALTER ACCOUNT コマンドを使用したアカウントパラメーターのセットについては、 ALTER ACCOUNT をご参照ください。パラメーター DISABLE_USER_PRIVILEGE_GRANTS の詳細については、 DISABLE_USER_PRIVILEGE_GRANTS をご参照ください。

オブジェクトに対する将来の付与の割り当て

グラント管理を簡素化するために、 将来の付与 では、データベースやスキーマの特定の タイプ の新しい(つまり将来の)オブジェクトに付与する権限の初期セットを定義することができます。データベースまたはスキーマで新しいオブジェクトが作成されると、定義された権限が指定されたロールに自動的に付与されます。

将来の付与では、指定されたタイプの新しいオブジェクトに付与される権限の 初期 セットのみを定義します。個々のオブジェクトが作成されると、管理者は明示的に追加の権限を付与したり、オブジェクトに対する権限を取り消したりできます。これにより、スキーマまたはデータベース内のすべてのオブジェクトに対するきめ細かいアクセス制御が可能になります。

将来の付与を利用する際の留意点

  • 同じデータベースで、データベースとスキーマのために将来の付与が 同じオブジェクト型で 定義される場合、スキーマレベルの付与はデータベースレベルの付与よりも優先され、データベースレベルの付与は無視されます。この動作は、1つまたは別のロールに付与された将来のオブジェクトに対する権限に適用されます。

    たとえば、次のステートメントは、データベースレベルとスキーマレベルで同じ型のオブジェクトに対して異なる権限を付与します。

    データベース d1 内にあるすべての将来のテーブルに対する SELECT 権限をロール r1 に付与します。

    GRANT SELECT ON FUTURE TABLES IN DATABASE d1 TO ROLE r1;
    
    Copy

    スキーマ d1.s1 内にあるすべての将来のテーブルに対する INSERT および DELETE 権限をロール r2 に付与します。

    GRANT INSERT,DELETE ON FUTURE TABLES IN SCHEMA d1.s1 TO ROLE r2;
    
    Copy

    スキーマ d1.s1 のオブジェクト型の r1 ロールに割り当てられた将来の付与は完全に無視されます。スキーマ d1.s1 に新しいテーブルが作成されると、 r2 ロールのテーブルに対して定義された将来の権限のみが付与されます。

  • データベースレベルの将来の付与は、通常のアクセススキーマと 管理アクセススキーマ の両方に適用されます。

データベースまたはスキーマオブジェクトに対する将来の付与の定義

ON FUTURE キーワードで GRANT <権限> ... TO ROLE コマンドを使用して、指定された型の将来のオブジェクトに対する権限を付与します。

データベースまたはスキーマオブジェクトに対する将来の付与の取り消し

ON FUTURE キーワードで REVOKE <権限> ... FROM ROLE コマンドを使用して、将来のオブジェクトに対する付与を取り消します。

オブジェクトのクローニングと将来の付与

  • データベースまたはスキーマがクローンされると、将来の付与はそのクローンにコピーされます。つまり、ソースオブジェクト(つまりデータベース)に対する権限付与はクローンにはコピーされませんが、すべての子オブジェクト(つまりデータベース内のテーブル)に対する権限付与はクローンにコピーされます。

  • スキーマ内のオブジェクトのクローンが作成されると、クローン操作の CREATE <オブジェクト> ステートメントで COPY GRANTS オプションが指定されていない限り、スキーマ内のこのオブジェクトタイプに対して定義された将来の付与がクローンオブジェクトに適用されます。その場合、新しいオブジェクトは元のオブジェクトのアクセス許可を保持し、その型のオブジェクトに対する将来の付与を継承 しません

従来のコンソールを使用した将来の付与の管理

Classic Console を使用して、将来の付与を定義することもできます。

将来のデータベースオブジェクトに対する権限付与:
  1. Databases データベースタブ を選択します。

  2. 特定のデータベースの行をクリックします。セキュリティパネルが開きます。

  3. Grant Privileges を選択します。 Grant Privileges ダイアログが開きます。

  4. Grant privileges on ドロップダウンリストから future object_type を選択して、特定のオブジェクト型の新しいオブジェクトに対する将来の付与を定義します。

  5. 残りのドロップダウンリストから、指定したタイプの新しいオブジェクトに付与する権限と、権限が付与されるロールを選択します。

  6. Grant Privileges を選択します。

将来のスキーマオブジェクトに対する権限付与:
  1. Databases データベースタブ » <データベース名> » Schemas を選択します。

  2. 特定のスキーマの行を選択します。セキュリティパネルが開きます。

  3. Grant Privileges を選択します。 Grant Privileges ダイアログが開きます。

  4. Grant privileges on ドロップダウンリストから future object_type を選択して、特定のオブジェクト型の新しいオブジェクトに対する将来の付与を定義します。

  5. 残りのドロップダウンリストから、指定したタイプの新しいオブジェクトに付与する権限と、権限が付与されるロールを選択します。

  6. Grant Privileges を選択します。

将来の付与を Snowsight で管理するには、ワークシートで SQL ステートメントを実行します。

管理アクセススキーマの作成

管理アクセススキーマは、オブジェクトの権限管理をロックダウンすることでセキュリティを向上させます。

通常の(つまり、管理されていない)スキーマでは、オブジェクトの所有者(つまり、オブジェクトの OWNERSHIP 権限を持つロール)は、そのオブジェクトへのアクセスを他のロールに付与することができ、さらにそれらのロールにオブジェクトの付与を管理する権限を付与することもできます。

管理アクセススキーマを使用すると、オブジェクトの所有者は付与を決定する機能を失います。 将来の付与 を含むスキーマの所有者(つまり、スキーマ上で OWNERSHIP 権限を持つロール)または MANAGE GRANTS 権限を持つロールのみが、スキーマ内のオブジェクトに権限を付与することができます。

ウェブインターフェイスまたは SQL を使用して、管理アクセススキーマを作成できます。

Classic Console:

Databases データベースタブ » <データベース名> » Schemas » Create Schema をクリックします。

SQL:

WITH MANAGED ACCESS キーワードを使用して、 CREATE SCHEMA ステートメントを実行します。

ウェブインターフェイスまたは SQL を使用して、通常のスキーマを管理アクセススキーマに(またはその逆に)変更できます。

Classic Console:

Databases データベースタブ » <データベース名> » Schemas » <スキーマ名> » Alter a schema をクリックします。

SQL:

ENABLE | DISABLE MANAGED ACCESS キーワードで ALTER SCHEMA ステートメントを実行します。

次の表は、通常のアクセススキーマまたは管理アクセススキーマでオブジェクトの権限を管理できるロールを示しています。

ロール

通常のスキーマでオブジェクト権限を付与できます

管理アクセススキーマでオブジェクト権限を付与できます

SYSADMIN

無し

無し

SECURITYADMIN 以上

有り

有り

データベース所有者

無し

無し

スキーマ所有者

いいえ

はい

オブジェクト所有者

はい

いいえ

MANAGE GRANTS 権限のある任意のロール

有り

有り

Snowsightでオブジェクトの権限を管理する

Snowsight を使用して、ロールへのデータベースオブジェクト権限の付与を管理することができます。これらの権限を管理するには、オブジェクト上の OWNERSHIP 権限またはグローバル MANAGE GRANTS 権限を持つロールを使用します。

Snowsight を使用して付与を管理する場合、 SQL で GRANT PRIVILEGE または REVOKE PRIVILEGE コマンドを実行するのと同じです。例えば、 Snowsight を使用して ACCOUNTADMIN ロールにビューに対する USAGE 権限を付与することができます。

オブジェクトに対する権限の付与

ロールにデータベースオブジェクト権限を付与するには、次を行います。

  1. Snowsight にサインインします。

  2. Data » Databases を選択します。

  3. 特定のデータベースとスキーマの場合、権限を付与するデータベースオブジェクトを選択します。

  4. Object DetailsPrivileges セクションを見つけます。

  5. + Privilege を選択します。

  6. 権限を付与するロールを選択します。

  7. ロールに付与する権限を選択します。

  8. ロールが他のロールに権限を付与できるようにする場合は、 Grant option を選択します。

  9. ロールに付与するオブジェクト権限ごとにステップを繰り返します。

  10. Grant Privileges を選択します。

オブジェクトに対する権限を取り消しする

ロールからデータベースオブジェクト権限を取り消すには、次を行います。

  1. Snowsight にサインインします。

  2. Data » Databases を選択します。

  3. 特定のデータベースとスキーマの場合、権限を取り消したいデータベースオブジェクトを選択します。

  4. Object DetailsPrivileges セクションを見つけます。

  5. 表示されている特定のロールの場合、行にカーソルを合わせると表示される Edit Role 鉛筆アイコンを選択します。

  6. 表示されるダイアログで、 x を選択して特定のロールから権限を取り消します。

  7. Update Privileges を選択します。

ロールに付与された権限を特定する

特定のロールに付与された権限を表示するには、 SHOW GRANTS コマンドを実行するか、 Snowsight で次を行います。

  1. Snowsight にサインインします。

  2. Admin » Users & Roles » Roles を選択します。

  3. Table を選択し、付与された権限を表示するロールを探します。

  4. 付与された権限を表示したいロールを選択し、詳細を表示します。

  5. ロールの Privileges セクションを確認します。

非アカウント管理者の有効化による、従来のコンソール内での使用状況と請求履歴のモニター

Snowflakeは、データストレージ/転送およびウェアハウスの使用/ロードに関する広範なアカウントの使用量と請求情報を提供します。

Snowsight:

Admin » Cost Management を選択します。

Classic Console:

Account アカウントタブ » Billing & Usage を選択します。

SQL:

次のいずれかをクエリします。

デフォルトでは、アカウント管理者のみがこの情報にアクセスし、表示できます。

注釈

現在、 Snowsight は、アカウント管理者に対して使用状況と請求情報のみを表示します。他のロールにこの情報を表示する機能を付与することはできません。

アカウント管理者ではないユーザーがこの情報にアクセス/表示できるようにするには、システム定義またはカスタムのロールに次の権限を付与します。ロールに権限を付与すると、ロールを付与されたすべてのユーザーがこの履歴/使用情報にアクセスできます。

権限

オブジェクト

説明

MONITOR USAGE

アカウント(つまりグローバル権限)

ロールを付与されたユーザーが、ウェブインターフェイスで使用状況と請求情報を表示し、Information Schemaで対応するテーブル関数をクエリできるようにします。

さらに、この権限を使用すると、 SHOW DATABASES および SHOW WAREHOUSES コマンドは、他の権限の付与に関係なく、アカウント内のすべてのデータベースとウェアハウスのリストをそれぞれ返します。

IMPORTED PRIVILEGES

snowflake データベース

ロールを付与されたユーザーが、使用状況と請求情報を含むビューを含む、すべてのACCOUNT USAGE ビューをクエリできるようにします。

詳細については、 他のロールが SNOWFLAKE データベースのスキーマを使用できるようにする をご参照ください。

たとえば、これらの権限を custom ロールに付与するには、次を実行します。

GRANT MONITOR USAGE ON ACCOUNT TO ROLE custom;

GRANT IMPORTED PRIVILEGES ON DATABASE snowflake TO ROLE custom;
Copy