サーバー管理者ロールへのサービス プリンシパルの追加

無人の PowerShell タスクを自動化するには、管理対象の Analysis Services サーバー上で、サービス プリンシパルにサーバー管理者権限が付与されている必要があります。 この記事では、Analysis Services サーバー上のサーバー管理者ロールにサービス プリンシパルを追加する方法について説明します。 これは、SQL Server Management Studio または Resource Manager テンプレートを使用して行うことができます。

注

サービス プリンシパルは、サーバー管理者ロールに "直接" 追加する必要があります。 サービス プリンシパルをセキュリティ グループに追加してから、そのセキュリティ グループをサーバー管理者ロールに追加することはサポートされていません。

開始する前に

このタスクを完了するには、Microsoft Entra ID にサービス プリンシパルが登録されている必要があります。

サービス プリンシパルの作成 - Azure portal
サービス プリンシパルの作成 - PowerShell

SQL Server Management Studio の使用

サーバー管理は、SQL Server Management Studio (SSMS) を使用して構成することができます。 このタスクを完了するには、Analysis Services サーバーに対するサーバー管理者のアクセス許可が必要です。

  1. SSMS で Analysis Services サーバーに接続します。

  2. [サーバーのプロパティ]>[セキュリティ] で、[追加] をクリックします。

  3. [ユーザーまたはグループを選択します] で、登録されているアプリを名前で検索し、選択した後、[追加] をクリックします。

    サービス プリンシパルのアカウントの検索を示すスクリーンショット。

  4. サービス プリンシパルのアカウント ID を確認し、[OK] をクリックします。

    サービス プリンシパルのアカウント ID が表示され、[OK] ボタンが強調表示されているスクリーンショット。

Resource Manager テンプレートの使用

Azure Resource Manager テンプレートを使用して Analysis Services サーバーを展開して、サーバー管理者を構成することも可能です。 この展開を実行する ID は、Azure ロールベースのアクセス制御 (Azure RBAC) の共同作成者ロールに属している必要があります。

重要

サービス プリンシパルは app:{service-principal-client-id}@{azure-ad-tenant-id} の書式を使用して追加します。

次の Resource Manager テンプレートは、Analysis Services の管理者ロールにサービス プリンシパルを指定して Analysis Services サーバーを展開します。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "analysisServicesServerName": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "analysisServicesSkuName": {
            "type": "string"
        },
        "analysisServicesCapacity": {
            "type": "int"
        },
        "servicePrincipalClientId": {
            "type": "string"
        },
        "servicePrincipalTenantId": {
            "type": "string"
        }
    },
    "resources": [
        {
            "name": "[parameters('analysisServicesServerName')]",
            "type": "Microsoft.AnalysisServices/servers",
            "apiVersion": "2017-08-01",
            "location": "[parameters('location')]",
            "sku": {
                "name": "[parameters('analysisServicesSkuName')]",
                "capacity": "[parameters('analysisServicesCapacity')]"
            },
            "properties": {
                "asAdministrators": {
                    "members": [
                        "[concat('app:', parameters('servicePrincipalClientId'), '@', parameters('servicePrincipalTenantId'))]"
                    ]
                }
            }
        }
    ]
}

マネージド ID の使用

データベースまたはサーバー ロールに追加されたマネージド ID では、サービスにログインしたり、操作を行ったりすることはできません。 サービス プリンシパルのマネージド ID は、Azure Analysis Services ではサポートされていません。