無人の 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 サーバーに対するサーバー管理者のアクセス許可が必要です。
SSMS で Analysis Services サーバーに接続します。
[サーバーのプロパティ]>[セキュリティ] で、[追加] をクリックします。
[ユーザーまたはグループを選択します] で、登録されているアプリを名前で検索し、選択した後、[追加] をクリックします。
サービス プリンシパルのアカウント 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 ではサポートされていません。