Compartilhar via


Automação com entidades de serviço

Os principais de serviço são um recurso do aplicativo Microsoft Entra que você cria em seu locatário para realizar operações de nível de serviço e recursos sem supervisão. Eles são um tipo exclusivo de identidade de usuário com uma ID do aplicativo e senha ou certificado. Um principal de serviço tem apenas as permissões necessárias para executar tarefas definidas pelas funções e permissões a que está atribuída.

Nos Analysis Services, os principais de serviço são usados com a Automação do Azure, o modo sem intervenção do PowerShell, aplicativos cliente personalizados e aplicativos da web para automatizar tarefas comuns. Por exemplo, o provisionamento de servidores, a implantação de modelos, a atualização de dados, a escalabilidade, pausar/retomar podem ser automatizados usando principais de serviço. As permissões são atribuídas aos principais de serviço por meio da associação de função, da mesma forma que às contas UPN regulares do Microsoft Entra.

O Analysis Services não dá suporte a operações executadas por identidades gerenciadas usando entidades de serviço. Para saber mais, confira identidades gerenciadas para recursos do Azure e serviços do Azure que dão suporte à autenticação do Microsoft Entra.

Criar entidades de serviço

Os princípios de serviço podem ser criados no portal do Azure ou pelo PowerShell. Para saber mais, confira:

Criar principal de serviço – portal do Azure
Criar principal de serviço – PowerShell

Armazenar ativos de credenciais e certificados na Automação do Azure

As credenciais e certificados do principal de serviço podem ser armazenados com segurança na Automação do Azure para operações de runbooks. Para saber mais, confira:

Ativos de credencial na Automação do Azure
Ativos de certificado na Automação do Azure

Adicionar service principals à função de administrador do servidor

Antes de usar um principal de serviço para operações de gerenciamento de servidor do Analysis Services, você deve adicioná-lo à função de administradores do servidor. Entidades de serviço devem ser adicionadas diretamente à função de administrador do servidor. Não há suporte para a adição de uma entidade de serviço a um grupo de segurança e a adição desse grupo de segurança à função de administrador do servidor. Para saber mais, veja Adicionar uma entidade de serviço à função de administrador do servidor.

Entidades de serviço em cadeias de conexão

AppID da entidade de serviço e senha ou certificado podem ser usados em cadeias de conexão da mesma forma que um UPN.

PowerShell

Observação

Recomendamos que você use o módulo do Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Usando o módulo Az.AnalysisServices

Ao usar uma entidade de serviço para operações de gerenciamento de recursos com o módulo Az.AnalysisServices, use o cmdlet Connect-AzAccount.

No exemplo a seguir, appID e uma senha são usados para executar operações de plano de gerenciamento para réplicas de leitura única e escalonamento vertical e horizontal:

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $PlainPWord,
        [Parameter(Mandatory=$true)] [String] $TenantId
       )
$PWord = ConvertTo-SecureString -String $PlainPWord -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

# Connect using Az module
Connect-AzAccount -Credential $Credential -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"

# Synchronize a database for query scale out
Sync-AzAnalysisServicesInstance -Instance "asazure://westus.asazure.windows.net/testsvr" -Database "testdb"

# Scale up the server to an S1, set 2 read-only replicas, and remove the primary from the query pool. The new replicas will hydrate from the synchronized data.
Set-AzAnalysisServicesServer -Name "testsvr" -ResourceGroupName "testRG" -Sku "S1" -ReadonlyReplicaCount 2 -DefaultConnectionMode Readonly

Usando o módulo SQLServer

No exemplo a seguir, appID e uma senha são usados para executar uma operação de atualização de banco de dados modelo:

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $PlainPWord,
        [Parameter(Mandatory=$true)] [String] $TenantId
       )
$PWord = ConvertTo-SecureString -String $PlainPWord -AsPlainText -Force

$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

Invoke-ProcessTable -Server "asazure://westcentralus.asazure.windows.net/myserver" -TableName "MyTable" -Database "MyDb" -RefreshType "Full" -ServicePrincipal -ApplicationId $AppId -TenantId $TenantId -Credential $Credential

AMO e ADOMD

Ao se conectar com aplicativos cliente e aplicativos Web, as bibliotecas de cliente AMO e ADOMD versão 15.0.2 e pacotes instaláveis mais recentes do NuGet oferecem suporte a principais de serviço em cadeias de conexão usando a seguinte sintaxe: app:AppID e senha ou cert:thumbprint.

No exemplo a seguir, appID e um password é usado para executar uma operação de atualização de banco de dados modelo:

string appId = "xxx";
string authKey = "yyy";
string connString = $"Provider=MSOLAP;Data Source=asazure://westus.asazure.windows.net/<servername>;User ID=app:{appId};Password={authKey};";
Server server = new Server();
server.Connect(connString);
Database db = server.Databases.FindByName("adventureworks");
Table tbl = db.Model.Tables.Find("DimDate");
tbl.RequestRefresh(RefreshType.Full);
db.Model.SaveChanges();

Próximas etapas

Entrar com o Azure PowerShell
Atualizar com Logic Apps
Atualizar com a Automação do Azure
Adicionar uma entidade de serviço à função de administrador do servidor
Automatizar tarefas de workspaces e conjuntos de dados do Power BI Premium com principais de serviço