SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

ADF を使用して Fabric Data Warehouse にデータを投入する際に必要となる権限

leave a comment

ADF はデータセットとして Fabric として次のデータストアを使用することができます。

  • Microsoft Fabric Lakehouse テーブル
  • Microsoft Fabric Lakehouse ファイル
  • Microsoft Fabric ウェアハウス

image

Fabric へのデータ投入は、Fabric 内のデータパイプラインだけでなく、Azure 内でパイプラインを作成することでデータの投入を行うこともできます。

Microsoft Fabric ウェアハウス (Data Warehouse) に ADF を使用してデータを投入する際に、必要となる権限についてまとめておきたいと思います。

なお、Data Warehouse へのデータ投入については「データのコピー」のアクティビティを使用しており、ステージングストレージが必要となります。

ADF を使用してデータを投入する際に必要となる権限

使用可能な資格情報

ADF から Fabric に接続する際には、「サービスプリンシパル」を使用した接続のみがサポートされています。

実際に新しいリンクサービスを作成する際の画面が以下となりますが、認証参照方式は「Inline」「Credential」の二種類を選択することができますが、どちらも資格情報としては、サービスプリンシパルを使用した設定となります。

image

ADF のマネージド ID では接続することができませんので、事前に Entra ID で「アプリの登録」を行い、ADF で使用するサービスプリンシパルの作成を行っておきます。

 

Fabric のポータルからアクセス権を設定

Entra ID で「アプリの登録」を行い、アプリケーションが使用することができる状態にしてもそのアプリケーションは接続対象となる Data Warehouse に対してアクセスすることができないため、テスト接続を行っても接続エラーとなります。

Fabric のポータルから接続対象となる Data Warehouse の「アクセス許可の管理」をクリックし、接続に使用するサービスプリンシパルに対して「ReadData」のアクセス許可を設定しておきます。

今回は接続に使用するサービスプリンシパルがメンバーとして登録されているグループを指定しています。

image

これで、テスト接続が成功するようになります。

image

 

Fabric で T-SQL で必要となる権限を付与

ここまでの設定で接続ができるようになりますが、データのコピーを実行してみると次のエラーが発生します。

SQL DW Copy Command operation failed with error ‘You do not have permission to use the bulk load statement.’

SQL DW Copy Command operation failed with error ‘The INSERT permission or external policy action ‘Microsoft.Sql/Sqlservers/Databases/Schemas/Tables/Rows/Insert’ was denied on the object ‘<Table Name>’, database ‘<Database Name>’, schema ‘<Schema Name>’.’

 

Fabric のポータルの「アクセス許可の管理」では、参照権限のみを設定しているため、データを投入することができません。

データのコピーを使用して Fabric Data Warehouse でデータの投入をしようとした場合、COPY ステートメントが使用されています。

Fabric のドキュメントには記載はありませんが Synapse のドキュメントを確認すると、次の権限が必要という記載があり、これは Fabric にも該当していました。

Fabric のワークスペース管理者で該当の Data Warehouse に接続して次のクエリを実行することで、必要となる権限を付与することができます。

GRANT ADMINISTER DATABASE BULK OPERATIONS TO [<サービスプリンシパル名 or グループ名>]
GRANT INSERT ON [<スキーマ名>].[<テーブル名>] TO [<サービスプリンシパル名 or グループ名>]

 

この権限が付与されていれば、ADF のデータのコピーを使用して、Data Warehouse にデータを投入することができまます。

image

Share

Written by Masayuki.Ozawa

5月 6th, 2024 at 8:10 pm

Leave a Reply