データ品質のアクセス制御

次のセクションでは、データ品質とデータメトリック関数(DMFs)に関連するアクションのアクセス制御要件について説明します。

一般的なタスク

注釈

スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマについての権限を付与されたロールは、そのスキーマ名を解決できるようになります。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。

タスク

必要な権限/ロール

メモ

DMF をテーブルまたはビューに関連付ける

アカウントに対する EXECUTE DATA METRIC FUNCTION

DMF に対する USAGE 権限

次のいずれかを使用します。

  • テーブルに対する OWNERSHIP 権限を持つロール。

  • テーブルに対する SELECT 権限を持ち、かつ EXECUTE AS ROLE プロパティで指定されたロール。

EXECUTE AS ROLE プロパティについては、テーブルまたはビューに対する必須権限 をご参照ください。

オブジェクトと DMFs との関連付けを表示する

DMF に対する USAGE 権限

DMF に関連付けられたテーブルまたはビューに対する SELECT 権限

カスタム DMF

スキーマに対する CREATE DATA METRIC FUNCTION 権限

DMF を手動で呼び出します。

DMF に対する USAGE 権限

呼び出しで指定されたテーブルまたはビューに対する SELECT 権限

データ品質の結果の表示

表示オプション

必要な権限/ロール

メモ

DATA_QUALITY_MONITORING_RESULTS_RAW イベントテーブル

DATA_QUALITY_MONITORING_ADMIN アプリケーションロール

DATA_QUALITY_MONITORING_RESULTS ビュー

次のいずれかを使用します。

  • DATA_QUALITY_MONITORING_ADMIN アプリケーションロール

  • DATA_QUALITY_MONITORING_VIEWER アプリケーションロール

DATA_QUALITY_MONITORING_RESULTS 関数

次のいずれかを使用します。

  • DATA_QUALITY_MONITORING_ADMIN アプリケーションロール

  • DATA_QUALITY_MONITORING_VIEWER アプリケーションロール

  • DATA_QUALITY_MONITORING_LOOKUP アプリケーションロール

DATA_QUALITY_MONITORING_LOOKUP アプリケーションロールを使用する場合は次も必要です。

  • DMF に関連付けられたテーブルに対するOWNERSHIP または SELECT 権限

  • DMF に対する USAGE 権限

テーブルまたはビューに対する必須権限

DMF をテーブルまたはビューに関連付けるためのアクセス制御要件の1つは、そのテーブルまたはビューに対する適切な権限を持つことです。DMF をロールのオブジェクトに関連付けるには、以下のいずれかの権限が必要です。

  • テーブルまたはビューに対する OWNERSHIP 権限。

  • テーブルまたはビューに対する SELECT 権限。

DMFs をオブジェクトに関連付けることが可能なオブジェクトに対する SELECT 権限を持つロールが必要な場合は、関連付けを定義するときの EXECUTE AS ROLE プロパティを設定する必要があります。このプロパティは、DMF で実行されるロールを指定します。たとえば、ロール analyst_role がテーブル t1 に対する SELECT 権限を持つと仮定します。positive_number_count DMF をテーブル t1 と関連付けるには、analyst_role ロールで実行するように次のコマンドを実行します。

ALTER TABLE t1
  ADD DATA METRIC FUNCTION governance.dfms.positive_number_count on (c1, c2, c3)
    EXECUTE AS ROLE analyst_role;
Copy

このコマンドは、analyst_role ロールを持つユーザー、またはロール階層の上位にあるロールを持つユーザー(たとえば ACCOUNTADMIN ロール)が実行できます。

EXECUTE AS ROLE プロパティが指定されていない場合、DMF は、テーブル所有者のロールで実行されます。現在のユーザーのロールによって動作が異なるデータガバナンスポリシーに影響を与える可能性があるため、DMF で実行するロールは重要です。

EXECUTE AS ROLE プロパティの利点

EXECUTE AS ROLE プロパティを使用すると、非所有者に関連付けを許可し、テーブルまたはビューに対して DMF を実行できるようにします。これにより、データガバナーはテーブルを所有することなく、データ品質チェックを作成することができます。

制限事項

MODIFY DATA METRIC FUNCTION 句を使用して EXECUTE AS ROLE プロパティで指定されたロールを変更することはできません。関連付けをドロップし、新しい EXECUTE AS ROLE ロールで再作成する必要があります。

システム DMFs に対する USAGE 権限を付与する

システム DMF の関連付けと実行には、システム DMF に対する USAGE 権限が必要です。SNOWFLAKE.DATA_METRIC_USER データベースロールを付与すると、ユーザーにすべてのシステム DMFs に対する USAGE 権限を付与できます。

たとえば、システム DMFs を操作するための data_governor ロールを持つユーザーを許可する場合、次のコマンドを実行します。

GRANT DATABASE ROLE snowflake.data_metric_user TO ROLE data_governor;
Copy

または、次のアクセス制御オプションでシステム DMFs に対する USAGE 権限を付与することもできます。これらのオプションは、システム DMFs 以上のものにアクセスできるため、使用の際には注意が必要です。

カスタム DMF に対する権限の付与

GRANT と REVOKE コマンドでは、作成したカスタム DMF の引数を指定する必要があります。例:

GRANT USAGE ON FUNCTION
  governance.dmfs.count_positive_numbers(TABLE(NUMBER, NUMBER, NUMBER))
  TO data_engineer;
Copy