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

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

Note

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

開始する前に

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

サービス プリンシパルを作成する - Azure Portal
サービス プリンシパルを作成する - PowerShell

SQL Server Management Studio を使用する

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

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

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

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

    Screenshot that shows Search for service principal account.

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

    Screenshot that shows the service principal account ID and highlights the OK button.

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 ではサポートされていません。