次の方法で共有


SSMS でのロールの作成と管理

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

この記事では、SQL Server Management Studio (SSMS) を使用してロールを作成し、ロールのアクセス許可を定義し、デプロイされた表形式モデルまたはPower BI Premiumセマンティック モデルのユーザーを追加する方法について説明します。 Visual Studio を使用して表形式モデル プロジェクトのロールを作成および管理する方法については、「 Visual Studio でのロールの作成と管理」を参照してください。

SSMS を使用する

新しいロールを作成するには

  1. SQL Server Management Studioで、新しいロールを作成する表形式モデル データベースを展開し、[ロール] を右クリックし、[新しいロール] をクリックします。

  2. [ロールの作成] ダイアログ ボックスの [ページの選択] ウィンドウで [全般]をクリックします。

  3. 全般設定のウィンドウの [名前] フィールドにロールの名前を入力します。

    メンバーの種類 (Finance Manager や人事スペシャリストなど) を明確に識別する名前を使用し、名前にコンマが含まれていないことを確認します。 既定では、既定ロールの名前に番号が付き、新しいロールを作成するたびにその番号が増加します。

  4. [このロールにデータベースの権限を設定します]で、次の権限オプションのいずれかを選択します。

    権限 説明
    フル コントロール (管理者) メンバーは、モデル スキーマを変更したり、すべてのデータを表示したりできます。
    データベースの処理 メンバーは、処理およびすべて処理の各操作を実行できます。 モデル スキーマを変更することはできませんし、データを表示することもできません。
    読み取り メンバーは、データを表示できますが (行フィルターに従って)、モデル スキーマを変更することはできません。
  5. [ロールの作成] ダイアログ ボックスの [ページの選択] ウィンドウで [メンバーシップ]をクリックします。

  6. メンバーシップ設定ウィンドウで [ 追加] をクリックし、[ ユーザーまたはグループの選択 ] ダイアログ ボックスで、メンバーとして追加するユーザーまたはグループを追加します。

  7. 作成するロールに読み取りアクセス許可がある場合は、DAX 数式を使用して任意のテーブルの行フィルターを追加できます。 行フィルターを追加するには、[ ロールのプロパティ - <ロール名> ] ダイアログ ボックスの [ ページの選択] で、[ 行フィルター] をクリックします。

  8. 行フィルター ウィンドウでテーブルを選択し、[DAX フィルター] フィールドをクリックし、[DAX フィルター - <テーブル名>] フィールドに DAX 数式を入力します。

    注意

    DAX フィルター - <テーブル名> フィールドには、オートコンプリート クエリ エディターまたは関数の挿入機能が含まれていません。

  9. [ OK] を クリックしてロールを保存します。

ロールをコピーするには

  1. SQL Server Management Studioで、コピーするロールを含む表形式モデル データベースを展開し、[ロール] を展開してから、ロールを右クリックして、[複製] をクリックします。

ロールを編集するには

  • SQL Server Management Studioで、編集するロールを含む表形式モデル データベースを展開し、[ロール] を展開してから、ロールを右クリックし、[プロパティ] をクリックします。

    [ ロールのプロパティ<ロール名> ] ダイアログ ボックスでは、アクセス許可の変更、メンバーの追加または削除、行フィルターの追加/編集を行うことができます。

ロールを削除するには

  • SQL Server Management Studioで、削除するロールを含む表形式モデル データベースを展開し、[ロール] を展開してから、ロールを右クリックして、[削除] をクリックします

スクリプト

デプロイされたモデルとセマンティック モデルのロールは、 表形式モデル スクリプト言語 (TMSL) を使用して Roles オブジェクトを作成または変更することでスクリプト化できます。 TMSL スクリプトは、SSMS で、または Invoke-ASCmd PowerShell コマンドレットを使用して実行できます。

データベース オブジェクト>>スクリプト スクリプト データベースをCREATE または REPLACE To>New クエリ エディター Windowとして>右クリックします。 ロールは、次のように roles オブジェクトで定義されます。

        "roles": [
          {
            "name": "Sales Manager",
            "modelPermission": "read"
          },
          {
            "name": "Sales Analyst US",
            "modelPermission": "read",
            "tablePermissions": [
              {
                "name": "DimGeography",
                "filterExpression": "DimGeography[CountryRegionCode] = \"US\" "
              }
            ]
          }
        ],

こちらもご覧ください

ロール