Analysis Services で使用するデータ ソースのセキュリティ保護

MicrosoftSQL ServerAnalysis Services が読み込むデータのデータ ソースに、権限のないユーザーがアクセスできる場合、それらのユーザーは、Analysis Services のインスタンス内に保存されている同じ情報にアクセスできることになります。これらのデータ ソースへのアクセスは制限する必要があります。キューブとディメンションを参照するには、Analysis Services ユーザーにはこれらのデータ ソースに対する権限は必要ありません。ただし、Analysis Services ユーザーは、データ マイニング拡張機能 (DMX) を使用した一部のデータ マイニング タスクの実行などの特定のタスクの実行には基になるデータ ソースに接続する権限が必要です。

基になるデータ ソースへの接続のセキュリティ保護

Analysis Services は、次の目的で基になるデータ ソースに接続します。

  • Analysis Services へのデータの処理

  • ROLAP または HOLAP の使用時のクエリの解決

  • 書き戻しエントリの記録

  • 多次元式 (MDX) ドリルスルー クエリの実行

Analysis Services では、DataSource オブジェクトを使用してこれらの各タスクを実行します。DataSource オブジェクトでこれらのデータ ソースにアクセスするために使用するセキュリティ アカウントは、ユーザー独自のセキュリティ資格情報か、DataSource オブジェクトに保存された接続文字列で指定されたユーザー名とパスワードのいずれかです。

注記注意

Analysis Services が Analysis Services ログオン アカウントを使用してそのデータ ソースのいずれかに接続する場合、フル コントロール権限を持つデータベース ロールのメンバが、そのデータ ソースにアクセスできます。データベース内でそのデータ ソースが使用されているかどうかは関係ありません。

DataSource オブジェクトが使用するセキュリティ アカウントで必要な権限は、Analysis Services で実行するタスクによって異なります。

  • データ ソースに接続するには、DataSource オブジェクトが使用するセキュリティ アカウントに、少なくともデータ ソース内の該当テーブルに対する読み取り権限が必要です。ROLAP ストレージを使用した場合、セキュリティ アカウントには、データ ソースに集計データを書き戻す権限も必要になります。

  • 書き戻しが有効な場合、使用するセキュリティ アカウントには、書き戻しテーブルへの書き込み権限も必要です。

Analysis Services では、各データ ソースへの接続に使用した接続情報を暗号化し、保存します。接続文字列で、信頼関係接続ではなく特定のセキュリティ アカウントが指定されている場合は、パスワードがあってもなくても接続文字列を保存できます。接続文字列と共にパスワードを保存しなかった場合は、処理中やデータ ソース ビューの変更中など、Analysis Services でそのデータ ソースに接続しようとすると、Analysis Services によって適切なセキュリティ アカウントとパスワードの入力が求められます。

開発中は、接続文字列のセキュリティ アカウントとパスワードを Analysis Services プロジェクトに保存するように選択できます。Analysis Services プロジェクトをビルドする際、セキュリティ アカウントとパスワードを出力ファイルに含めるように選択していない限り、Business Intelligence Development Studio ではすべてのデータ ソース接続文字列からセキュリティ アカウントとパスワードが削除されます。セキュリティ アカウントとパスワードを Analysis Services プロジェクトの出力ファイルに保存する場合は、この接続文字列情報は暗号化されます。この接続文字列情報を保存せず、接続文字列で信頼関係接続が指定されていない場合は、Analysis Services では配置処理中に適切なセキュリティ アカウントとパスワードの入力が求められます。

データ マイニング クエリで使用する接続のセキュリティ保護

基になるデータ ソースに接続するために DMX ステートメントで OPENQUERY 句を使用するデータ マイニング クエリの場合、Analysis Services は DataSource オブジェクトを使用して接続します。DataSource オブジェクトは、クライアントの権限を借用するか、接続文字列で指定された名前とパスワードを使用します。既定では、ユーザーには DataSource オブジェクトに対する権限がないため、OPENQUERY ステートメントを使用して基になるデータ ソースをクエリできません。DMX ステートメントで OPENQUERY 句を使用して基になるデータをクエリするには、ユーザーは、DataSource オブジェクトに対する読み取り/書き込み権限を付与される必要があります。ユーザーに DataSource オブジェクトに対する読み取り/書き込み権限があり、接続文字列で特定のアカウントが指定されている場合、指定されたアカウントの基になるデータ ソースのテーブルに対しては、権限の制限をできるだけ厳重にすること、つまりアクセスされる特定のテーブルへの権限を読み取り専用権限に限定することがベスト プラクティスです。DMX の詳細については、「データ マイニング拡張機能 (DMX) データ定義ステートメント」および「データ マイニング拡張機能 (DMX) データ操作ステートメント」を参照してください。

既定では、ユーザーは DMX ステートメントで OPENROWSET 句を使用することも、基になるデータ ソースに対してアドホック接続文字列を使用してアドホック クエリを送信することもできません。ユーザーが OPENROWSET 句を使用できるようにするには、DataMining \ AllowAdHocOpenRowsetQueries サーバー構成プロパティの既定の設定を変更します。このプロパティにアクセスするには、Analysis Services のインスタンスを右クリックし、[プロパティ] をクリックし、[セキュリティ] ページでこのプロパティを選択します。これを行うと、データ マイニング モデル ユーザーがクエリできるデータ ソースを制限することができなくなります。詳細については、「マイニング構造とマイニング モデルへのアクセスの許可」および「データ ソースへのアクセスの許可」を参照してください。