オブジェクトと操作へのアクセスの承認 (Analysis Services)

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

管理者以外のユーザーは、1 つ以上のデータベース ロールのメンバーになることで、SQL Server Analysis Services データベース内のキューブ、ディメンション、およびマイニング モデルにアクセスできます。 SQL Server Analysis Services管理者は、これらのデータベース ロールを作成し、SQL Server Analysis Services オブジェクトに対する読み取り/書き込みアクセス許可を付与し、各ロールMicrosoft Windowsユーザーとグループを割り当てます。

SQL Server Analysis Servicesは、ユーザーまたはグループが属する各データベース ロールに関連付けられているアクセス許可を組み合わせることで、特定のWindowsユーザーまたはグループに対する有効なアクセス許可を決定します。 その結果、1 つのデータベース ロールがディメンション、メジャー、または属性を表示する権限をユーザーまたはグループに付与せず、別のデータベース ロールがそのユーザーまたはグループのアクセス許可を与える場合、ユーザーまたはグループはオブジェクトを表示する権限を持ちます。

Important

SQL Server Analysis Services サーバー管理者ロールのメンバーと、フル コントロール (管理者) アクセス許可を持つデータベース ロールのメンバーは、データベース内のすべてのデータとメタデータにアクセスでき、特定のオブジェクトを表示するための追加のアクセス許可は必要ありません。 さらに、SQL Server Analysis Services サーバー ロールのメンバーは、どのデータベース内のオブジェクトへのアクセスも拒否できません。また、データベース内のフル コントロール (管理者) アクセス許可を持つSQL Server Analysis Services データベース ロールのメンバーは、そのデータベース内のオブジェクトへのアクセスを拒否できません。 処理などの特殊な管理操作は、アクセス許可が少ない個別のロールを使用して承認できます。 詳細については、 プロセスのアクセス許可の付与 (Analysis Services) に関するページを参照してください。

データベースに対して定義されているロールを一覧表示する

管理者は、SQL Server Management Studio で単純な DMV クエリを実行して、サーバーで定義されているすべてのロールの一覧を取得できます。

  1. SSMS でデータベースを右クリックし、 新しいクエリ | MDX を選択します。

  2. 次のクエリを入力し、F5 キーを押して実行します。

    Select * from $SYSTEM.DBSCHEMA_CATALOGS  
    

    結果には、データベース名、説明、ロール名、最後に変更された日付が含まれます。 この情報を出発点として、個々のデータベースに進み、特定のロールのメンバーシップとアクセス許可を確認できます。

Analysis Services の承認に関するトップダウンの概要

このセクションでは、アクセス許可を構成するための基本的なワークフローについて説明します。

手順 1: サーバー管理

最初の手順として、サーバー レベルで管理者権限を持つユーザーを決定します。 インストール時に、SQL Server をインストールするローカル管理者は、Analysis Services サーバー管理者として 1 つ以上の Windows アカウントを指定する必要があります。 サーバー管理者には、サーバー上のオブジェクトの表示、変更、削除、関連付けられているデータの表示などの、サーバーに対して可能なすべてのアクセス許可があります。 インストールが完了すると、サーバー管理者はアカウントを追加または削除して、このロールのメンバーシップを変更できます。 このアクセス許可レベルの詳細については、 Analysis Services インスタンスへのサーバー管理者権限の付与 に関するページを参照してください。

手順 2: データベース管理

次に、表形式または多次元ソリューションを作成した後、データベースとしてサーバーに配置します。 サーバー管理者は、データベースのフル コントロールアクセス許可を持つロールを定義することで、データベース管理タスクを委任できます。 このロールのメンバーは、データベース内のオブジェクトを処理またはクエリしたり、データベース内のキューブ、ディメンション、およびその他のオブジェクトにアクセスするための追加のロールを作成したりできます。 詳細については、「 データベース権限の付与 (Analysis Services)」を参照してください。

手順 3: クエリと処理ワークロードのキューブまたはモデル アクセスを有効にする

既定では、サーバー管理者とデータベース管理者のみがキューブまたは表形式モデルにアクセスできます。 これらのデータ構造を組織内の他のユーザーが使用できるようにするには、ユーザー アカウントとグループ アカウントWindowsキューブまたはモデルにマップする追加のロールと、読み取り権限を指定するアクセス許可を割り当てます。 詳細については、「 キューブまたはモデルの権限を付与する (Analysis Services)」を参照してください。

他の管理機能から処理タスクを分離できます。 この分離サーバーとデータベース管理者は、このタスクを他のユーザーに委任するか、スケジューリング ソフトウェアを実行するサービス アカウントを指定して無人処理を構成します。 詳細については、「 プロセス権限の付与 (Analysis Services)」を参照してください。

注

ユーザーは、SQL Server Analysis Services がデータを読み込む基盤となるリレーショナル データベース内のリレーショナル テーブルへのアクセス許可を必要としません。 また、SQL Server Analysis Servicesのインスタンスが実行されているコンピューターに対するファイル レベルのアクセス許可も必要ありません。

手順 4 (省略可能): 内部キューブ オブジェクトへのアクセスを許可または拒否する

SQL Server Analysis Services には、データ モデル内のディメンション メンバーやセルなど、個々のオブジェクトに対するアクセス許可を設定するためのセキュリティ設定が用意されています。 詳細については、「 ディメンション データへのカスタム アクセスを許可する (Analysis Services)」 および 「セル データへのカスタム アクセスを許可する (Analysis Services)」を参照してください。

ユーザー ID に基づいてアクセス許可を変更することもできます。 このバリエーションは、多くの場合、動的セキュリティと呼ばれ、 UserName (MDX) 関数を使用して実装されます。

ベスト プラクティス

アクセス許可をより適切に管理するには、次の手順のような方法を使用します。

  1. ロールを管理するユーザーがロールの許可内容をひとめで確認できるように、関数別にロール (dbadmin、cubedeveloper、processadmin など) を作成します。 他の場所で説明したように、モデル定義でロールを定義できるため、後続のソリューション デプロイよりもそれらのロールを保持できます。

  2. Active Directoryに対応するWindowsセキュリティ グループを作成し、セキュリティ グループをActive Directoryに保持して、適切な個々のアカウントが含まれていることを確認します。 このアプローチでは、組織内のアカウントメンテナンスに使用されるツールとプロセスに既に習熟しているセキュリティ スペシャリストに対して、セキュリティ グループメンバーシップの責任を負います。

  3. モデルがソース ファイルからサーバーに再デプロイされるたびにロールの割り当てを迅速にレプリケートできるように、SQL Server Management Studio でスクリプトを生成します。 スクリプトをすばやく生成する方法の詳細については、「 キューブまたはモデルの権限の付与 (Analysis Services)」 を参照してください。

  4. ロールのスコープとメンバーシップを反映する名前付け規則を採用します。 ロール名はデザイン ツールと管理ツールでのみ表示されるため、キューブ セキュリティ スペシャリストには意味のある名前付け規則を使用してください。 たとえば、 processadmin-windowsgroup1 は、個々の Windows ユーザー アカウントが windowsgroup1 セキュリティ グループのメンバーである組織内のユーザーに対する読み取りアクセス権と処理権限を示します。

    アカウント情報を含めると、さまざまなロールで使用されているアカウントを追跡するのに役立ちます。 ロールは追加的であるため、 windowsgroup1 に関連付けられている組み合わされたロールによって、そのセキュリティ グループに属するユーザーの有効なアクセス許可セットが構成されます。

  5. キューブ開発者は、開発中のモデルとデータベースに対するフル コントロール権限を必要としますが、読み取りアクセス許可は、データベースが実稼働サーバーにロールアウトされた後にのみ必要です。 開発、テスト、運用のデプロイなど、すべてのシナリオでロールの定義と割り当てを必ず開発してください。

このようなアプローチを使用すると、モデルのロール定義とロール メンバーシップへの変更を最小限に抑え、キューブのアクセス許可の実装と保守を容易にするロールの割り当てを可視化できます。

こちらも参照ください

Analysis Services インスタンスにサーバー管理者権限を付与する
ロールと権限 (Analysis Services)
Analysis Services でサポートされる認証手法