Compartilhar via


Configurar Contas de Serviço (Serviços de Análise)

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

O provisionamento de conta em todo o produto está documentado na Configuração de Contas e Permissões de Serviço do Windows, um tópico que fornece informações abrangentes da conta de serviço para todos os serviços do SQL Server, incluindo o SQL Server Analysis Services. Consulte-o para saber mais sobre tipos de conta válidos, privilégios do Windows atribuídos pela instalação, permissões do sistema de arquivos, permissões de registro e muito mais.

Este tópico fornece informações complementares para o SQL Server Analysis Services, incluindo permissões adicionais necessárias para instalações tabulares e clusterizados. Ele também abrange as permissões necessárias para dar suporte a operações de servidor. Por exemplo, você pode configurar operações de processamento e consulta para executar na conta de serviço ─ nesse cenário, permissões adicionais são necessárias.

Outra etapa de configuração, não documentada aqui, é registrar um SPN (Nome da Entidade de Serviço) para a instância e a conta de serviço do SQL Server Analysis Services. Esta etapa permite a autenticação de passagem direta de aplicativos clientes para fontes de dados backend em cenários de duplo salto. Esta etapa só se aplica aos serviços configurados para Delegação Restrita Kerberos. Consulte Configurar a delegação restrita do Analysis Services para Kerberos para obter mais instruções.

Recomendações de conta de logon

A conta de inicialização do serviço MSSQLServerOLAPService Windows pode ser uma conta de usuário de domínio do Windows, uma conta virtual, uma MSA (conta de serviço gerenciada) ou uma conta interna, como um SID por serviço, NetworkService ou LocalSystem. O uso de uma conta de usuário de domínio como uma conta de logon de serviço fornece detalhes sobre formatos de conta de usuário.

Em um cluster de failover, todas as instâncias do Analysis Services devem ser configuradas para usar uma conta de usuário de domínio do Windows. Atribua a mesma conta a todas as instâncias. Consulte Como fazer o Cluster Analysis Services para obter detalhes.

Instâncias autônomas devem usar a conta virtual padrão, NT Service\MSSQLServerOLAPService para a instância padrão ou NT Service\MSOLAP$instance-name para uma instância nomeada. Essa recomendação se aplica a instâncias do Analysis Services em todos os modos de servidor, supondo que o Windows Server 2008 R2 e posterior para o sistema operacional e o SQL Server 2012 e posterior para o Analysis Services.

Conceder permissões ao Analysis Services

Esta seção explica as permissões que o Analysis Services requer para operações locais e internas. Essas operações incluem iniciar o executável, ler o arquivo de configuração e carregar bancos de dados do diretório de dados. As diretrizes sobre como definir permissões para acesso a dados externos e interoperabilidade com outros serviços e aplicativos estão disponíveis na concessão de permissões adicionais para operações de servidor específicas mais adiante neste tópico.

Para operações internas, o titular da permissão no Analysis Services não é a conta de logon, mas um grupo de segurança local do Windows criado pela configuração que contém o SID por serviço. Atribuir permissões ao grupo de segurança é consistente com versões anteriores do Analysis Services. Além disso, as contas de logon podem ser alteradas ao longo do tempo, mas o SID por serviço e o grupo de segurança local são constantes durante o tempo de vida da instalação do servidor. Para o Analysis Services, o grupo de segurança é uma opção melhor para manter permissões do que a conta de logon. Sempre que você conceder manualmente direitos à instância de serviço, seja permissões do sistema de arquivos ou privilégios do Windows, conceda permissões ao grupo de segurança local criado para a instância de servidor.

O nome do grupo de segurança segue um padrão. O prefixo é sempre SQLServerMSASUser$, seguido pelo nome do computador, terminando com o nome da instância. A instância padrão é MSSQLSERVER. Uma instância nomeada é o nome fornecido durante a instalação.

Você pode ver esse grupo de segurança nas configurações de segurança local:

  • Executar compmgmt.msc | Usuários e Grupos | LocaisGrupos | SQLServerMSASUser$<nome> do servidor$MSSQLSERVER (para uma instância padrão).

  • Para exibir seus membros, clique duas vezes no grupo de segurança.

O único membro do grupo é o SID por serviço. Ao lado dela está a conta de logon. O nome da conta de logon é cosmético, está lá para fornecer contexto ao SID específico de cada serviço. Se você alterar a conta de logon, o grupo de segurança e o SID por serviço não serão alterados. Somente o rótulo da conta de logon é diferente.

Privilégios do Windows atribuídos à conta de serviço do Analysis Services

O Analysis Services precisa de permissões do sistema operacional para inicialização de serviço e para solicitar recursos do sistema. Os requisitos variam de acordo com o modo de servidor e se a instância está clusterizado.

Todas as instâncias do Analysis Services requerem o privilégio Log on como um serviço (SeServiceLogonRight). A Instalação do SQL Server atribui o privilégio para você na conta de serviço especificada durante a instalação. Para servidores em execução no modo Multidimensional e de Mineração de Dados, esse é o único privilégio do Windows exigido pela conta de serviço do Analysis Services em instalações autônomas de servidor, e é o único privilégio configurado pelo processo de configuração para o Analysis Services. Para instâncias clusterizados e tabulares, privilégios adicionais do Windows devem ser adicionados manualmente.

As instâncias de cluster de failover, em modo Tabular ou Multidimensional, devem ter Aumento da Prioridade de Agendamento (SeIncreaseBasePriorityPrivilege).

As instâncias tabulares usam os três privilégios adicionais a seguir, que devem ser concedidos manualmente após a instalação da instância.

Privilégio Descrição
Aumentar o conjunto de memória de trabalho de um processo (SeIncreaseWorkingSetPrivilege) Esse privilégio está disponível para todos os usuários por padrão por meio do grupo de segurança Usuários . Se você bloquear um servidor removendo privilégios para esse grupo, o Analysis Services poderá falhar ao iniciar, registrando este erro em log: "Um privilégio necessário não é mantido pelo cliente". Quando esse erro ocorrer, restaure o privilégio para o Analysis Services concedendo-o ao grupo de segurança apropriado do Analysis Services.
Ajustar quotas de memória para um processo (SeIncreaseQuotaPrivilege) Esse privilégio é usado para solicitar mais memória se um processo não tiver recursos suficientes para concluir sua execução, sujeito aos limites de memória estabelecidos para a instância.
Bloquear páginas na memória (SeLockMemoryPrivilege) Esse privilégio é necessário somente quando a paginação é desativada por completo. Por padrão, uma instância de servidor tabular usa o arquivo de paginação do Windows, mas você pode impedi-lo de usar a paginação do Windows definindo VertiPaqPagingPolicy como 0.

VertiPaqPagingPolicy para 1 (padrão), instrui a instância do servidor tabular a usar o arquivo de paginação do Windows. As alocações não estão bloqueadas, permitindo que o Windows pagine conforme necessário. Como a paginação está sendo usada, não é necessário bloquear páginas na memória. Portanto, para a configuração padrão (onde VertiPaqPagingPolicy = 1), você não precisa conceder o privilégio de bloquear páginas na memória a uma instância tabular.

VertiPaqPagingPolicy para 0. Se você desativar a paginação para o Analysis Services, as alocações serão bloqueadas, supondo que o privilégio de bloquear páginas na memória seja concedido à instância tabular. Dada a configuração e o privilégio de bloquear páginas na memória, o Windows não pode paginar as alocações de memória feitas para o Analysis Services quando o sistema está sob pressão de memória. O serviço Analysis Services depende da permissão para bloquear páginas na memória como o mecanismo por trás de VertiPaqPagingPolicy = 0. Observe que não é recomendável desativar a paginação do Windows. Isso aumentará a taxa de erros de memória insuficiente para operações que poderiam ter êxito se a paginação fosse permitida. Consulte Propriedades de Memória para obter mais informações sobre VertiPaqPagingPolicy.

Para exibir ou adicionar privilégios do Windows na conta de serviço

  1. Executar GPEDIT.msc | Política de Computador Local | Configuração do computador | Configurações do Windows | Configurações de segurança | Políticas locais | Atribuições de direitos do usuário.

  2. Revise as políticas existentes que incluem SQLServerMSASUser$. Este é um grupo de segurança local encontrado em computadores com uma instalação do Analysis Services. Privilégios do Windows e permissões de pastas de arquivos são concedidos a este grupo de segurança. Clique duas vezes em Fazer logon como um serviço para ver como o grupo de segurança é especificado em seu sistema. O nome completo do grupo de segurança variará dependendo se você instalou o Analysis Services como uma instância nomeada. Use esse grupo de segurança, em vez da conta de serviço real, ao adicionar privilégios de conta.

  3. Para adicionar privilégios de conta no GPEDIT, clique com o botão direito do mouse em Aumentar um conjunto de trabalho do processo e selecione Propriedades.

  4. Clique em Adicionar Usuário ou Grupo.

  5. Insira o grupo de usuários para a instância do Analysis Services. Lembre-se de que a conta de serviço é membro de um grupo de segurança local, exigindo que você insira o nome do computador local como domínio da conta.

    A lista a seguir mostra dois exemplos para uma instância padrão e uma instância nomeada chamada "Tabular" em um computador chamado "SQL01-WIN12", em que o nome do computador é o domínio local.

    • SQL01-WIN12\SQL01-WIN12$SQLServerMSASUser$MSSQLSERVER

    • SQL01-WIN12\SQL01-WIN12$SQLServerMSASUser$TABULAR

  6. Repita para Ajustar cotas de memória para um processo e, opcionalmente, para bloquear páginas na memória ou aumentar a prioridade de agendamento.

Observação

Versões anteriores do Setup adicionaram inadvertidamente a conta de serviço do Analysis Services ao grupo Usuários do Log de Desempenho. Embora esse defeito tenha sido corrigido, as instalações existentes podem ter essa associação desnecessária ao grupo. Como a conta de serviço do SQL Server Analysis Services não exige associação ao grupo Usuários do Log de Desempenho , você pode removê-la do grupo.

Permissões do sistema de arquivos atribuídas à conta de serviço do Analysis Services

Observação

Consulte Configurar contas de serviço e permissões do Windows para obter uma lista de permissões associadas a cada pasta de programa.

Consulte Configurar o acesso HTTP ao Analysis Services no IIS (Serviços de Informações da Internet) 8.0 para obter informações de permissão de arquivo relacionadas à configuração do IIS e ao SQL Server Analysis Services.

Todas as permissões do sistema de arquivos necessárias para operações de servidor, incluindo permissões necessárias para carregar e descarregar bancos de dados de uma pasta de dados designada, são atribuídas pela Instalação do SQL Server durante a instalação.

O titular da permissão em arquivos de dados, executáveis de arquivo de programa, arquivos de configuração, arquivos de log e arquivos temporários é um grupo de segurança local criado pela Instalação do SQL Server.

Há um grupo de segurança criado para cada instância que você instala. O grupo de segurança tem o nome da instância ─ SQLServerMSASUser$MSSQLSERVER para a instância padrão ou SQLServerMSASUser$<servername>$<instancename> para uma instância nomeada. A instalação provisiona esse grupo de segurança com as permissões de arquivo necessárias para executar operações de servidor. Se você verificar as permissões de segurança no diretório \MSAS13.MSSQLSERVER\OLAP\BIN, verá que o grupo de segurança (não a conta de serviço ou seu SID de cada serviço) é o detentor da permissão nesse diretório.

O grupo de segurança contém apenas um membro: o SID (Identificador de Segurança por serviço) da conta de inicialização da instância do SQL Server Analysis Services. A instalação adiciona o SID de serviço ao grupo de segurança local. O uso de um grupo de segurança local, com sua associação de SID, é uma diferença pequena, mas perceptível, na forma como a Instalação do SQL Server provisiona o Analysis Services, em comparação com o Mecanismo de Banco de Dados.

Se você acredita que as permissões de arquivo estão corrompidas, siga estas etapas para verificar se o serviço ainda está provisionado corretamente:

  1. Use a ferramenta de linha de comando do Controle de Serviço (sc.exe) para obter o SID de uma instância de serviço padrão.

    SC showsid MSSqlServerOlapService

    Para uma instância nomeada (em que o nome da instância é Tabular), use esta sintaxe:

    SC showsid MSOlap$Tabular

  2. Use Gerenciador de Computadores | Usuários e Grupos Locais | Grupos para inspecionar a associação do grupo de segurança SQLServerMSASUser$<servername>$<instancename>.

    O SID membro deve corresponder ao SID de cada serviço da etapa 1.

  3. Use Windows Explorer | Arquivos de Programas | Microsoft SQL Server | MSASxx.MSSQLServer | OLAP | bin para verificar se as propriedades de segurança da pasta são concedidas ao grupo de segurança na etapa 2.

Observação

Nunca remova ou modifique um SID. Para restaurar um SID por serviço que foi excluído inadvertidamente, consulte Usando SIDs de Serviço para conceder permissões a serviços no SQL Server 2017.

Mais sobre SIDs por serviço

Cada conta do Windows tem um SID associado, mas os serviços também podem ter SIDs, portanto chamados de SIDs por serviço. Um SID para cada serviço é criado quando a instância do serviço é instalada, como um componente exclusivo e permanente do serviço. O SID por serviço é um SID local no nível do computador gerado a partir do nome do serviço. Em uma instância padrão, seu nome amigável é NT SERVICE\MSSQLServerOLAPService.

O benefício de um SID por serviço é que ele permite que a conta de logon mais amplamente visível seja alterada arbitrariamente, sem afetar as permissões de arquivo. Por exemplo, suponha que você instalou duas instâncias do Analysis Services, uma instância padrão e uma instância nomeada, ambas em execução na mesma conta de usuário do Windows. Embora a conta de logon seja compartilhada, cada instância de serviço terá um SID exclusivo por serviço. Esse SID é diferente do SID da conta de logon. O SID por serviço é usado para permissões de arquivo e privilégios do Windows. Por outro lado, o SID da conta de logon é usado para cenários de autenticação e autorização: SIDs diferentes, usados para diferentes finalidades.

Como o SID é imutável, as ACLs do sistema de arquivos criadas durante a instalação do serviço podem ser usadas indefinidamente, independentemente da frequência com que você altera a conta de serviço. Como medida de segurança adicional, as ACLs que especificam permissões por meio de um SID garantem que os executáveis do programa e as pastas de dados sejam acessados apenas por uma única instância de um serviço, mesmo que outros serviços sejam executados na mesma conta.

Concedendo permissões adicionais do Analysis Services para operações de servidor específicas

O SQL Server Analysis Services executa algumas tarefas no contexto de segurança da conta de serviço (ou conta de logon) usada para iniciar o SQL Server Analysis Services e executa outras tarefas no contexto de segurança do usuário que está solicitando a tarefa.

A tabela a seguir descreve permissões adicionais necessárias para dar suporte a tarefas executadas como a conta de serviço.

Operação do servidor Item de Trabalho Justificação
Acesso remoto a fontes de dados relacionais externas Criar um logon de banco de dados para a conta de serviço O processamento refere-se à recuperação de dados de uma fonte de dados externa (geralmente um banco de dados relacional), que é posteriormente carregado em um banco de dados do SQL Server Analysis Services. Uma das opções de credencial para recuperar dados externos é usar a conta de serviço. Essa opção de credencial só funcionará se você criar um logon de banco de dados para a conta de serviço e conceder permissões de leitura no banco de dados de origem. Consulte Definir Opções de Representação (SSAS – Multidimensional) para obter mais informações sobre como a opção de conta de serviço é usada para essa tarefa. Da mesma forma, se ROLAP for usado como modo de armazenamento, as mesmas opções de representação estarão disponíveis. Nesse caso, a conta também deve ter acesso de gravação aos dados de origem para processar as partições ROLAP (ou seja, para armazenar agregações).
DirectQuery Criar um logon de banco de dados para a conta de serviço O DirectQuery é um recurso de tabela usado para consultar conjuntos de dados externos que são muito grandes para caber dentro do modelo tabular ou têm outras características que tornam o DirectQuery mais adequado do que a opção de armazenamento na memória padrão. Uma das opções de conexão disponíveis no modo DirectQuery é usar a conta de serviço. Mais uma vez, essa opção funciona somente quando a conta de serviço tem um logon de banco de dados e permissões de leitura na fonte de dados de destino. Consulte Definir Opções de Representação (SSAS – Multidimensional) para obter mais informações sobre como a opção de conta de serviço é usada para essa tarefa. Como alternativa, as credenciais do usuário atual podem ser usadas para recuperar dados. Na maioria das vezes, essa opção envolve uma conexão dupla. Portanto, certifique-se de configurar a conta de serviço para delegação restrita Kerberos, para que a conta de serviço possa delegar identidades a um servidor subsequente. Consulte Configurar o Analysis Services para delegação restrita pelo Kerberos para obter mais informações.
Acesso remoto a outras instâncias do SSAS Adicionar a conta de serviço às funções de banco de dados do Analysis Services definidas no servidor remoto Partições remotas e referenciar objetos vinculados em outras instâncias remotas do SQL Server Analysis Services são recursos do sistema que exigem permissões em um computador ou dispositivo remoto. Quando uma pessoa cria e popula partições remotas ou configura um objeto vinculado, essa operação é executada no contexto de segurança do usuário atual. Se você automatizar essas operações posteriormente, o SQL Server Analysis Services acessará instâncias remotas no contexto de segurança de sua conta de serviço. Para acessar objetos vinculados em uma instância remota do SQL Server Analysis Services, a conta de logon deve ter permissão para ler os objetos apropriados na instância remota, como acesso de leitura a determinadas dimensões. Da mesma forma, o uso de partições remotas exige que a conta de serviço tenha direitos administrativos na instância remota. Essas permissões são concedidas na instância remota do Analysis Services, usando funções que associam operações permitidas a um objeto específico. Consulte Conceder permissões de banco de dados (Analysis Services) para obter instruções sobre como conceder permissões de Controle Total que permitem operações de processamento e consulta. Consulte Criar e gerenciar uma partição remota (Analysis Services) para obter mais informações sobre partições remotas.
Write-back Adicionar a conta de serviço às funções de banco de dados do Analysis Services definidas no servidor remoto Quando habilitado em aplicativos cliente, o write-back é um recurso de modelos multidimensionais que permite a criação de novos valores de dados durante a análise de dados. Se o write-back estiver habilitado em qualquer dimensão ou cubo, a conta de serviço do SQL Server Analysis Services deverá ter permissões de gravação para a tabela de write-back no banco de dados relacional do SQL Server de origem. Se essa tabela ainda não existir e precisar ser criada, a conta de serviço do SQL Server Analysis Services também deverá ter permissões de criação de tabela no banco de dados designado do SQL Server.
Gravar em uma tabela de log de consultas em um banco de dados relacional do SQL Server Criar um login de banco de dados para a conta de serviço e atribuir permissões de gravação na tabela de log de consultas Você pode habilitar o log de consultas para coletar dados de uso em uma tabela de banco de dados para análise subsequente. A conta de serviço do SQL Server Analysis Services deve ter permissões de gravação na tabela de log de consultas no banco de dados designado do SQL Server. Se essa tabela ainda não existir e precisar ser criada, a conta de logon do SQL Server Analysis Services também deverá ter permissões de criação de tabela no banco de dados designado do SQL Server. Para obter mais informações, consulte Aprimorar o desempenho do SQL Server Analysis Services com o Assistente de Otimização Baseada em Uso (Blog).

Configurar contas de serviço e permissões do Windows
Conta de Serviço do SQL Server e SID Per-Service (Blog)
Usando SIDs de Serviço para conceder permissões a serviços no SQL Server 2017
Token de Acesso (MSDN)
Identificadores de segurança (MSDN)
Token de Acesso (Wikipédia)
Listas de controle de acesso (Wikipédia)