Snowflakeでのdbtプロジェクトのアクセス制御¶
次のコマンドは、dbtプロジェクトオブジェクトに一般的に付与される権限を示しています。
ワークスペース内からのデプロイなど、dbtプロジェクトオブジェクトを作成する権限を付与するには
ワークスペースをdbtプロジェクトオブジェクトに接続するなど、dbtプロジェクトオブジェクトを変更またはドロップ(削除)する権限を付与するには
dbtプロジェクトオブジェクトを実行し、ファイルをリストまたは取得する権限を付与するには
Snowsightでdbtプロジェクトオブジェクトを表示するには、そのdbtプロジェクトに対するMONITOR権限を持つロールを使用する必要があります。この権限がないと、プロジェクトの詳細、実行履歴、監視情報にアクセスできません。
詳細については、 dbtプロジェクトオブジェクト権限 をご参照ください。
dbtプロジェクトのデプロイのロールと権限¶
Snowsight からのdbtプロジェクトのデプロイは、最初、デプロイダイアログで選択されたロール(つまり、Connect » Deploy dbt project から選択したロール)を使用します。コンパイル中、dbtプロジェクトは、オブジェクトに優先される DEFAULT_TARGET 属性がない限り、 profiles.yml のターゲットプロファイルで指定されたロールを使用します。
同様に、SQL または CLI からdbtプロジェクトをデプロイすると、最初はそれぞれ、ワークシートのロール、または connection.toml を使用し、次にコマンドで指定されたロールを使用します。デプロイ中の実際のコンパイルでは、オブジェクトに優先される DEFAULT_TARGET 属性がない限り、 profiles.yml のターゲットプロファイル内のロールが使用されます。
dbtプロジェクト実行のロールと権限¶
dbtプロジェクトを実行すると、実行のメソッドに応じて、実行を実行するロールと、dbt run または build コマンドを指定したときに出力を実体化するロールが表示されます。
SQL または CLI からの実行¶
EXECUTEDBTPROJECT で指定されたdbtコマンドは、プロジェクトの profiles.yml ファイルの outputs ブロックで指定された role の権限で実行します。操作はさらに、EXECUTE DBT PROJECT を呼び出すSnowflakeユーザーに付与された権限のみに制限されます。指定されたユーザーとロールの両方に、warehouse を使用する権限、プロジェクトの profiles.yml ファイルで指定されている database および schema で操作を実行する権限、そしてdbtモデルが指定する他のSnowflakeオブジェクトで操作を実行する権限が必要です。
ワークスペース内からの実行¶
Choosing the dbt Run or Build command for a project from within a workspace materializes target output using the role defined in the project's profiles.yml file. Both the user and the role specified must have the required privileges to use the warehouse, perform operations on the database and schema that are specified in the project's profiles.yml file, and perform operations on any other Snowflake objects that the dbt model specifies.
ワークスペース内からのスケジュールされた実行¶
ワークスペース内からdbtプロジェクトオブジェクトの実行をスケジュールすると、ユーザー管理のタスクが作成されます。ワークスペース内からタスクを作成するには、ユーザーは CREATETASK 参照情報の:ref:label-create_task_sql_access_control で説明されている権限のあるロールを持っている必要があります。Snowflakeは、タスク所有者の権限でタスクを実行しますが、タスクの実行はユーザーに関連付けられていません。詳細については、 システムサービスによって実行されるタスク をご参照ください。