将服务主体添加到服务器管理员角色

若要自动执行无人参与的 PowerShell 任务,服务主体在托管的 Analysis Services 服务器上必须具备“服务器管理员”权限。 本文介绍如何将服务主体添加到 Analysis Services 服务器上的服务器管理员角色。 可以使用 SQL Server Management Studio 或资源管理器模板来执行此操作。

注意

必须直接将服务主体添加到服务器管理员角色。 不支持先将服务主体添加到安全组,然后再将该安全组添加到服务器管理员角色。

开始之前

在完成此项任务之前,必须有一个在 Microsoft Entra ID 中注册的服务主体。

创建服务主体 - Azure 门户
创建服务主体 - 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,然后单击“确定”。

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

使用资源管理器模板

还可以通过使用 Azure 资源管理器模板部署 Analysis Services 服务器来配置服务器管理员。 运行部署的身份必须在 Azure 基于角色的访问控制 (Azure RBAC) 中属于资源的“参与者”角色。

重要

必须使用格式 app:{service-principal-client-id}@{azure-ad-tenant-id} 来添加服务主体。

以下资源管理器模板部署了一个 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'))]"
                    ]
                }
            }
        }
    ]
}

使用托管标识

添加到数据库或服务器角色的托管标识将无法登录到服务或执行任何操作。 Azure Analysis Services 不支持服务主体的托管标识。