チュートリアル:サーバー管理者とユーザー ロールを構成する
このチュートリアルでは、SQL Server Management Studio (SSMS) を使用して Azure 内のサーバーに接続し、サーバー管理者とモデル データベースのロールを構成します。 また、Tabular Model Scripting Language (TMSL) についても紹介します。 TMSL は、1200 以上の互換性レベルの表形式モデル用 JSON ベース スクリプト言語です。 多くの表形式モデリング タスクの自動化に使用できます。 TMSL は PowerShell でよく使用されますが、このチュートリアルでは SSMS で XMLA クエリ エディターを使用します。 このチュートリアルでは、以下のタスクを実行します。
- ポータルからサーバー名を取得する
- SSMS を使用してサーバーに接続する
- サーバー管理者ロールにユーザーまたはグループを追加する
- モデル データベース管理者ロールにユーザーまたはグループを追加する
- 新しいモデル データベース ロールを追加し、ユーザーまたはグループを追加する
Azure Analysis Services のユーザー セキュリティの詳細については、「認証とユーザーのアクセス許可」を参照してください。
前提条件
- お使いのサブスクリプション内の Microsoft Entra ID。
- サブスクリプションで Azure Analysis Services サーバーが作成されている。
- サーバー管理者アクセス許可を持っている。
- adventureworks サンプル モデルをサーバーに追加する。
- 最新バージョンの SQL Server Management Studio (SSMS) をインストールする。
Azure portal にサインインする
ポータルにサインインします。
サーバー名を取得する
SSMS からサーバーに接続するには、まずサーバー名が必要です。 ポータルからサーバー名を取得できます。
Azure portal でサーバーを選び、[概要]>[サーバー名] でサーバー名をコピーします。
SSMS で接続する
残りのタスクについては、SSMS を使用してサーバーに接続し、サーバーを管理します。
SSMS のオブジェクト エクスプローラーで、[接続]>[Analysis Services] の順にクリックします。
[サーバーに接続] ダイアログ ボックスの [サーバー名] に、ポータルからコピーしたサーバー名を貼り付けます。 [認証] で [Active Directory - MFA サポートで汎用] を選択し、ユーザー アカウントを入力して [接続] を押します。
ヒント
[Active Directory - MFA サポートで汎用] を選択することをお勧めします。 この種類の認証は、対話型ではない多要素認証をサポートします。
オブジェクト エクスプローラーで、サーバー オブジェクトを展開して表示します。 右クリックして、サーバーのプロパティを表示します。
サーバー管理者ロールにユーザー アカウントを追加する
このタスクでは、お使いの Microsoft Entra ID のユーザーまたはグループ アカウントを、サーバー管理者ロールに追加します。 セキュリティ グループを指定する場合は、obj:groupid@tenantid
を使用してください。
オブジェクト エクスプローラーでサーバー名を右クリックし、 [プロパティ] をクリックします。
[分析サーバーのプロパティ] ウィンドウで、 [セキュリティ]>[追加] の順にクリックします。
[ユーザーまたはグループを選択します] ウィンドウ内で、お使いの Microsoft Entra ID のユーザーまたはグループ アカウントを入力し、[追加] をクリックします。
[OK] をクリックし、 [分析サーバーのプロパティ] を閉じます。
ヒント
また、ポータルで Analysis Services 管理者を使用してサーバー管理者を追加することもできます。
モデル データベース管理者ロールにユーザーを追加する
このタスクでは、モデルに既に存在する Internet Sales Administrator ロールにユーザーまたはグループ アカウントを追加します。 このロールには、adventureworks サンプル モデル データベースのフル コントロール (管理者) アクセス許可があります。 このタスクでは、作成されたスクリプトで CreateOrReplace TMSL コマンドを使用します。
オブジェクト エクスプローラーで、 [データベース]>[adventureworks]>[ロール] を展開します。
Internet Sales Administrator を右クリックし、 [ロールをスクリプト化]>[作成または置換]>[新しいクエリ エディター ウィンドウ] をクリックします。
XMLAQuery 内で、"memberName": の値を、お使いの Microsoft Entra ID のユーザーまたはグループ アカウントに変更します。 既定では、サインインに使っているアカウントが含まれています。ただし、既にサーバー管理者なので、独自のアカウントを追加する必要はありません。
F5 キーを押してスクリプトを実行します。
新しいモデル データベース ロールを追加し、ユーザーまたはグループを追加する
このタスクでは、TMSL スクリプト内で Create コマンドを使用して新しい Internet Sales Global ロールを作成し、そのロールに対して "読み取り" アクセス許可を指定し、お使いの Microsoft Entra ID のユーザーまたはグループ アカウントを追加します。
オブジェクト エクスプローラーで [adventureworks] を右クリックし、 [新しいクエリ]>[XMLA] の順にクリックします。
次の TMSL スクリプトをコピーしてクエリ エディターに貼り付けます。
{ "create": { "parentObject": { "database": "adventureworks", }, "role": { "name": "Internet Sales Global", "description": "All users can query model data", "modelPermission": "read", "members": [ { "memberName": "globalsales@adventureworks.com", "identityProvider": "AzureAD" } ] } } }
オブジェクト
"memberName": "globalsales@adventureworks.com"
の値を、お使いの Microsoft Entra ID 内のユーザーまたはグループ アカウントに変更します。F5 キーを押してスクリプトを実行します。
変更を確認する
オブジェクト エクスプローラーでサーバー名をクリックし、 [更新] をクリックするか、F5 キーを押します。
[データベース]>[adventureworks]>[ロール] を展開します。 前のタスクで追加したユーザー アカウントと新しいロールの変更が表示されていることを確認します。
リソースをクリーンアップする
不要になったら、ユーザーまたはグループのアカウントとロールを削除します。 これを行うには、 [ロールのプロパティ]>[メンバーシップ] を使用してユーザー アカウントを削除するか、ロールを右クリックして [削除] をクリックします。
次のステップ
このチュートリアルでは、Azure AS サーバーに接続し、SSMS の adventureworks サンプル モデル データベースとプロパティを調べる方法について説明しました。 また、SSMS および TMSL スクリプトを使用して既存のロールと新しいロールにユーザーまたはグループを追加する方法について説明しました。 サーバーとサンプル モデル データベース用にユーザー アクセス許可を構成したので、PowerBI などのクライアント アプリを使用して自分と他のユーザーが接続できます。 さらに学習するには、次のチュートリアルに進んでください。