Analysis Services データベース内のキューブ、ディメンション、およびマイニング モデルへの非管理ユーザー アクセスは、1 つ以上のデータベース ロールのメンバーシップを通じて付与されます。 Analysis Services 管理者は、これらのデータベース ロールを作成し、Analysis Services オブジェクトに対する読み取りまたは読み取り/書き込みアクセス許可を付与してから、Microsoft Windows ユーザーとグループを各ロールに割り当てます。
Analysis Services は、ユーザーまたはグループが属する各データベース ロールに関連付けられているアクセス許可を組み合わせることで、特定の Windows ユーザーまたはグループに対する有効なアクセス許可を決定します。 その結果、1 つのデータベース ロールがディメンション、メジャー、または属性を表示する権限をユーザーまたはグループに付与せず、別のデータベース ロールがそのユーザーまたはグループのアクセス許可を付与する場合、ユーザーまたはグループにはオブジェクトを表示する権限が与えられます。
重要
Analysis Services サーバー管理者ロールのメンバーと、フル コントロール (管理者) アクセス許可を持つデータベース ロールのメンバーは、データベース内のすべてのデータとメタデータにアクセスでき、特定のオブジェクトを表示するための追加のアクセス許可は必要ありません。 さらに、Analysis Services サーバー ロールのメンバーは、どのデータベース内のオブジェクトへのアクセスも拒否できません。また、データベース内のフル コントロール (管理者) 権限を持つ Analysis Services データベース ロールのメンバーは、そのデータベース内のオブジェクトへのアクセスを拒否できません。 処理などの特殊な管理操作は、アクセス許可が少ない個別のロールを使用して承認できます。 詳細については、 プロセスのアクセス許可の付与 (Analysis Services) に関するページを参照してください。
データベースに対して定義されているロールを一覧表示する
管理者は、SQL Server Management Studio で単純な DMV クエリを実行して、サーバーで定義されているすべてのロールの一覧を取得できます。
SSMS でデータベースを右クリックし、 新しいクエリ | MDX を選択します。
次のクエリを入力し、F5 キーを押して実行します。
Select * from $SYSTEM.DBSCHEMA_CATALOGS結果には、データベース名、説明、ロール名、最後に変更された日付が含まれます。 この情報を出発点として、個々のデータベースに進み、特定のロールのメンバーシップとアクセス許可を確認できます。
Analysis Services 認可のトップダウンによる概要
このセクションでは、アクセス許可を構成するための基本的なワークフローについて説明します。
手順 1: サーバー管理
最初の手順として、サーバー レベルで管理者権限を持つユーザーを決定します。 インストール時に、SQL Server をインストールするローカル管理者は、Analysis Services サーバー管理者として 1 つ以上の Windows アカウントを指定する必要があります。 サーバー管理者には、サーバー上のオブジェクトの表示、変更、削除、関連付けられているデータの表示などの、サーバーに対して可能なすべてのアクセス許可があります。 インストールが完了すると、サーバー管理者はアカウントを追加または削除して、このロールのメンバーシップを変更できます。 このアクセス許可レベルの詳細については、「 サーバー管理者の権限の付与 (Analysis Services)」 を参照してください。
手順 2: データベース管理
次に、表形式または多次元のソリューションが作成された後、データベースとしてサーバーにデプロイされます。 サーバー管理者は、対象のデータベースに対するフル コントロールアクセス許可を持つロールを定義することで、データベース管理タスクを委任できます。 このロールのメンバーは、データベース内のオブジェクトを処理またはクエリしたり、データベース内のキューブ、ディメンション、およびその他のオブジェクトにアクセスするための追加のロールを作成したりできます。 詳細については、「 データベース権限の付与 (Analysis Services)」 を参照してください。
手順 3: クエリと処理ワークロードのキューブまたはモデル アクセスを有効にする
既定では、サーバー管理者とデータベース管理者のみがキューブまたは表形式モデルにアクセスできます。 これらのデータ構造を組織内の他のユーザーが使用できるようにするには、Windows ユーザーアカウントとグループ アカウントをキューブまたはモデルにマップする追加のロールの割り当てと、 Read 権限を指定するアクセス許可が必要です。 詳細については、「 キューブまたはモデルのアクセス許可を付与する (Analysis Services)」 を参照してください。
処理タスクは、他の管理機能から分離できます。これにより、サーバー管理者とデータベース管理者は、このタスクを他のユーザーに委任したり、スケジューリング ソフトウェアを実行するサービス アカウントを指定して自動処理を構成したりできます。 詳細については、 プロセスのアクセス許可の付与 (Analysis Services) に関するページを参照してください。
注
ユーザーは、Analysis Services がデータを読み込む基になるリレーショナル データベース内のリレーショナル テーブルに対するアクセス許可を必要とせず、Analysis Services のインスタンスが実行されているコンピューターに対するファイル レベルのアクセス許可も必要ありません。
手順 4 (省略可能): 内部キューブ オブジェクトへのアクセスを許可または拒否する
Analysis Services には、データ モデル内のディメンション メンバーやセルなど、個々のオブジェクトに対するアクセス許可を設定するためのセキュリティ設定が用意されています。 詳細については、「 ディメンション データへのカスタム アクセスを許可する (Analysis Services)」 および「 セル データへのカスタム アクセスを許可する (Analysis Services)」を参照してください。
ユーザー ID に基づいてアクセス許可を変更することもできます。 これは動的セキュリティと呼ばれることが多く、 UserName (MDX) 関数を使用して実装されます
ベスト プラクティス
アクセス許可をより適切に管理するために、次のような方法をお勧めします。
ロールを管理するユーザーがロールの許可内容を一目で確認できるように、関数別にロール (dbadmin、cubedeveloper、processadmin など) を作成します。 他の場所で説明したように、モデル定義でロールを定義できるため、後続のソリューション デプロイよりもそれらのロールを保持できます。
Active Directory に対応する Windows セキュリティ グループを作成し、Active Directory でセキュリティ グループを維持して、適切な個々のアカウントが含まれていることを保証します。 これにより、組織内のアカウントメンテナンスに使用されるツールとプロセスに既に習熟しているセキュリティ スペシャリストに対して、セキュリティ グループメンバーシップの責任が負われます。
モデルがソース ファイルからサーバーに再デプロイされるたびにロールの割り当てを迅速にレプリケートできるように、SQL Server Management Studio でスクリプトを生成します。 スクリプトをすばやく生成する方法の詳細については、「 キューブまたはモデルの権限の付与 (Analysis Services)」 を参照してください。
ロールのスコープとメンバーシップを反映する名前付け規則を採用します。 ロール名はデザイン ツールと管理ツールでのみ表示されるため、キューブ セキュリティ スペシャリストには意味のある名前付け規則を使用してください。 たとえば、 processadmin-windowsgroup1 は、個々の Windows ユーザー アカウントが windowsgroup1 セキュリティ グループのメンバーである組織内のユーザーに対する読み取りアクセス権と処理権限を示します。
アカウント情報を含めると、さまざまなロールで使用されているアカウントを追跡するのに役立ちます。 ロールは追加的であるため、 windowsgroup1 に関連付けられている組み合わされたロールによって、そのセキュリティ グループに属するユーザーの有効なアクセス許可セットが構成されます。
キューブ開発者は、開発中のモデルとデータベースに対してフル コントロール権限を必要としますが、読み取りアクセス許可は、データベースが実稼働サーバーにロールアウトされた後にのみ必要です。 開発、テスト、運用のデプロイなど、すべてのシナリオでロールの定義と割り当てを必ず開発してください。
このようなアプローチを使用すると、モデルのロール定義とロール メンバーシップへの変更を最小限に抑え、キューブのアクセス許可の実装と保守を容易にするロールの割り当てを可視化できます。
こちらもご覧ください
サーバー管理者のアクセス許可を付与する (Analysis Services)
役割とアクセス許可 (Analysis Services)
Analysis Services でサポートされる認証方法