権限借用
適用対象:
SQL Server Analysis Services
Azure Analysis Services
Power BI Premium
この記事では、テーブルモデルの作成者が、データソースに接続してデータをインポートおよび処理 (更新) するときに、Analysis Services によるサインイン資格情報の使用方法について理解します。
権限借用の構成
どのようなコンテキストでモデルが存在するかによって、権限借用がどのように構成されるかが決まります。 新しいモデルプロジェクトを作成するときに、データソースに接続してデータをインポートするときに Visual Studio で権限借用が構成されます。 モデルが配置されている場合は、SQL Server Management Studio (SSMS) を使用して、モデルデータベース接続文字列プロパティで権限借用を構成できます。 Azure Analysis Services の表形式モデルでは、ブラウザーベースのデザイナーで SSMS またはビューとしてスクリプトモードを使用して、JSON でモデルの bim ファイルを編集できます。
偽装の使用方法
権限借用 は、Analysis Services などのサーバー アプリケーションがクライアント アプリケーションの ID を使用するための機能です。 Analysis Services はサービスアカウントを使用して実行されますが、サーバーがデータソースへの接続を確立するときに、データのインポートと処理に対するアクセスチェックを実行できるように、権限借用を使用します。
権限借用の資格情報がどのように指定され、セキュリティで保護されているか、および他の偽装資格情報が使用されるコンテキストの違いについて理解しておくことが重要です。
サーバー側の資格情報について
データがインポートまたは処理されるときに、権限借用の資格情報を使用してデータソースに接続し、データをフェッチします。 この接続は、ワークスペースデータベースをホストしている Analysis Services サーバーがデータソースに接続し、データをフェッチするため、クライアントアプリケーションのコンテキストで実行される サーバー側 の操作です。
モデルを Analysis Services サーバーに配置するときに、ワークスペース データベースがメモリ内にある場合、資格情報はモデルの配置先の Analysis Services サーバーに渡されます。 ユーザーの資格情報がディスク上に格納されることはありません。
配置されたモデルがデータソースのデータを処理する場合、メモリ内のデータベースに保持されている権限借用の資格情報を使用してデータソースに接続し、データをフェッチします。 このプロセスは、モデルデータベースを管理する Analysis Services サーバーによって処理されるため、この接続はサーバー側の操作になります。
クライアント側の資格情報について
新しいモデルを作成するとき、または既存のモデルにデータソースを追加するときは、データソースに接続し、モデルにインポートするテーブルとビューを選択します。 テーブルのインポートウィザードまたは Data\Query デザイナーの [プレビューとフィルター] 機能を使用すると、インポートするデータのサンプルが表示されます。 また、モデルで必要のないデータを除外するフィルターを指定することもできます。
同様に、既に作成済みの既存のモデルでは、[ テーブルのプロパティ ] ダイアログボックスを使用して、テーブルにインポートされたデータをプレビューおよびフィルター処理できます。
[プレビューとフィルター機能]、[ テーブルのプロパティ]、[ パーティションマネージャー ] の各ダイアログボックスは、インプロセスの クライアント側 の操作です。つまり、この操作中に実行される処理は、データソースの接続方法とは異なり、データソースからデータがフェッチされます。サーバー側の操作です。 データのプレビューとフィルター処理に使用される資格情報は、現在サインインしているユーザーの資格情報 (有効な資格情報) です。
サーバー側とクライアント側の操作中に使用される資格情報を分離すると、表示される内容と、インポートまたは処理中にフェッチされるデータ (サーバー側の操作) が一致しない可能性があります。 現在サインインしている資格情報と、指定された権限借用資格情報が異なる場合、データソースで必要な資格情報によっては、[プレビューとフィルター] 機能または [ テーブルのプロパティ ] ダイアログボックスに表示されるデータと、インポートまたは処理中にフェッチされるデータが異なることがあります。
重要
モデルを作成する場合は、サインインに使用した資格情報と、権限借用のために指定された資格情報に、データソースからデータをフェッチするための十分な権限があることを確認します。
オプション
権限借用を構成する場合、または既存のデータソース接続のプロパティを編集する場合は、次のいずれかのオプションを指定します。
表形式1400以上のモデル
| オプション | 説明 |
|---|---|
| アカウントの偽装 | データソースからデータをインポートまたは処理するために Windows ユーザーアカウントを使用するモデルを指定します。 ユーザーアカウントのドメインと名前は、ドメイン名 > \ < ユーザーアカウント名 > の形式 <を使用します。 |
| 現在のユーザーの権限の借用 | 要求を送信したユーザーの id を使用してデータソースからデータにアクセスするように指定します。 この設定は、DirectQuery モードにのみ適用されます。 |
| Id の借用 | データソースにアクセスするためのユーザー名を指定しますが、アカウントのパスワードを指定する必要はありません。 この設定は、Kerberos 委任が有効になっていて、S4U 認証を使用する必要がある場合にのみ適用されます。 |
| サービスアカウントの偽装 | モデルを管理する Analysis Services サービスインスタンスに関連付けられているセキュリティ資格情報を使用するモデルを指定します。 |
| 自動アカウントの偽装 | Analysis Services エンジンが、構成済みの自動アカウントを使用してデータにアクセスする必要があることを指定します。 |
重要
一部の環境では、現在のユーザーの権限借用はサポートされていません。 オンプレミスのデータソースに接続する Azure Analysis Services にデプロイされたテーブルモデルでは、現在のユーザーの権限はサポートされていません。 Azure Analysis Services サーバーリソースが組織のドメインに接続されていないため、クライアントの資格情報をそのドメイン内のデータソースサーバーに対して認証することはできません。 また Azure Analysis Services は、現在 (Azure SQL Database) のシングルサインオン (SSO) のサポートと統合されていません。 環境によっては、他の権限借用の設定にも制限があります。 サポートされていない権限借用設定を使用しようとすると、エラーが返されます。
表形式1200モデル
| オプション | 説明 |
|---|---|
| [特定の Windows ユーザー名とパスワード] | このオプションでは、データソースからデータをインポートまたは処理するために Windows ユーザーアカウントを使用するモデルを指定します。 ユーザーアカウントのドメインと名前は、ドメイン名 > \ < ユーザーアカウント名 > の形式 <を使用します。 |
| [サービス アカウント] | モデルを管理している Analysis Services サービス インスタンスに関連付けられているセキュリティ資格情報をモデルで使用するように指定します。 |
セキュリティ
権限借用で使用される資格情報は、VertiPaq エンジンによってメモリ内に保持されます。 資格情報はディスクに書き込まれません。 モデルの配置時にワークスペースデータベースがメモリ内にない場合、ユーザーはデータソースへの接続とデータのフェッチに使用される資格情報を入力するように求められます。
注意
権限借用の資格情報には、Windows のユーザーアカウントとパスワードを指定することをお勧めします。 Windows のユーザーアカウントは、データソースに接続してデータを読み取るために必要な最小限の特権を使用するように構成できます。