Configurar contas de serviço (Analysis Services)
O provisionamento de contas em nível de produto é documentado em Configurar contas de serviço e permissões do Windows, um tópico que fornece informações abrangentes de conta de serviço para todos os serviços do SQL Server, inclusive o Analysis Services. Consulte-o para obter informações sobre tipos de contas válidos, privilégios do Windows atribuídos na instalação, permissões do sistema de arquivos, permissões do Registro e muito mais.
Este tópico fornece informações complementares do Analysis Services, incluindo permissões adicionais necessárias para instalações de tabela e clusterizadas. Também aborda as permissões necessárias para oferecer suporte às operações do servidor. Por exemplo, você pode configurar operações de processamento e de consulta para executá-las na conta de serviço ─ nesse caso, você precisará conceder permissões adicionais para que funcione.
Privilégios do Windows atribuídos ao Analysis Services
Permissões do sistema de arquivos atribuídas ao Analysis Services
Concedendo permissões adicionais para operações de servidor específico
Uma etapa de configuração adicional, que não foi documentada aqui, é o registro de um nome da entidade de serviço (SPN) para a instância e a conta de serviço do Analysis Services. Essa etapa permite a autenticação de passagem de aplicativos cliente para fontes de dados de back-end em cenários de salto duplo. Essa etapa se aplica somente aos serviços configurados para delegação restrita do Kerberos. Consulte Configurar o Analysis Services para delegação restrita de Kerberos para obter mais instruções.
Recomendações de conta de logon
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 para todas as instâncias. Consulte Como realizar cluster no 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$**nome da instância para uma instância nomeada. Essa recomendação se aplica a instâncias do Analysis Services em todos os modos de servidor, supondo o Windows Server 2008 R2 e posterior para o sistema operacional e o SQL Server 2012 e posterior do Analysis Services.
Concedendo permissões ao Analysis Services
Esta seção explica as permissões exigidas para operações internas e locais, como iniciar executável, ler o arquivo de configuração e carregamento de bancos de dados do diretório de dados do Analysis Services. Se você estiver procurando orientação sobre definição de permissões para acesso a dados externos e interoperabilidade com outros serviços e aplicativos, consulte Concedendo permissões adicionais para operações de servidor específicas mais adiante neste tópico.
Para operações internas, o detentor da permissão no Analysis Services não é a conta de logon, mas um grupo de segurança local do Windows criado pelo programa de instalação que contém o SID por serviço. Atribuir permissões ao grupo de segurança é consistente com as 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, isso compõe o grupo de segurança, em vez da conta de logon, uma opção melhor para manter permissões. Sempre que você conceder direitos para a instância do serviço manualmente, com permissões ou privilégios do Windows, certifique-se de conceder permissões ao grupo de segurança local criado para a instância do 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:
Execute compmgmt.msc | Usuários e Grupos Locais | Grupos | SQLServerMSASUser$<nome do servidor>$MSSQLSERVER (para uma instância padrão).
Clique duas vezes no grupo de segurança para exibir seus membros.
O único membro do grupo é o SID por serviço. Logo ao lado dele está a conta de logon. O nome da conta de logon é superficial, para fornecer contexto para o SID por serviço. Se você altera posteriormente a conta de logon e, em seguida, retorna a esta página, você observará que o grupo de segurança e o SID por serviço não são alterados, mas o rótulo da conta de logon é diferente.
Privilégios do Windows atribuídos ao Analysis Services
O Analysis Services precisa de permissões do sistema operacional para inicializar o serviço e solicitar recursos do sistema. Os requisitos variam por modo do servidor e se a instância está clusterizada. Se não estiver familiarizado com os privilégios do Windows, consulte Privilégios e Constantes de Privilégio (Windows) para obter mais detalhes.
Todas as instâncias do Analysis Services exigem o privilégio Fazer logon como um serviço (SeServiceLogonRight). A configuração do SQL Server atribui o privilégio para você na conta de serviço especificada durante a instalação. Para servidores que são executados no modo de mineração de dados e no multidimensional, esse é o único privilégio do Windows exigido pela conta de serviço do Analysis Services para instalações do servidor autônomo e é o único privilégio que a Instalação configura para o Analysis Services. Adicione outros privilégios do Windows manualmente para instâncias clusterizadas e de tabela.
As instâncias de cluster de failover nos modos Multidimensional e de Tabela exigem Aumentar a prioridade de planejamento (SeIncreaseBasePriorityPrivilege).
As instâncias de tabela usam os três privilégios adicionais a seguir, que devem ser concedidos manualmente depois que a instância é instalada.
Aumentar conjunto de trabalho de processo (SeIncreaseWorkingSetPrivilege) |
Esse privilégio está disponível para todos os usuários por padrão no grupo de segurança Usuários. Se você bloquear um servidor usando a remoção de privilégios para esse grupo, o Analysis Services pode falhar ao iniciar, registrando em log este erro: "O cliente não tem o privilégio necessário." Quando esse erro ocorrer, restaure o privilégio do Analysis Services, concedendo-o ao grupo de segurança do Analysis Services adequado. |
Ajustar quotas de memória para um processo (SeIncreaseQuotaSizePrivilege) |
Esse privilégio é usado para solicitar mais memória, se um processo não tiver recursos suficientes para concluir a sua execução, dependendo dos limites de memória estabelecidos para a instância. |
Bloquear páginas na memória (SeLockMemoryPrivilege) |
Este privilégio somente é necessário quando a paginação estiver totalmente desativada. Por padrão, uma instância de servidor de tabela usa o arquivo de paginação do Windows, mas é possível definir esse comportamento pela configuração de VertiPaqPagingPolicy para 0. A VertiPaqPagingPolicy para 1 (padrão) instrui a instância do servidor de tabelas para usar o arquivo de paginação do Windows. Alocações não sã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 (em que VertiPaqPagingPolicy = 1), não é necessário conceder o privilégio Bloquear páginas na memória para uma instância de tabela. VertiPaqPagingPolicy para 0. Quando você desliga a paginação para o Analysis Services, as alocações ficam bloqueadas, presumindo que o privilégio Bloquear páginas na memória foi concedido à instância de tabela. Considerando essa configuração e o privilégio Bloquear páginas na memória, o Windows não pode paginar alocações de memória feitas para o Analysis Services quando o sistema estiver sob pressão de memória. O Analysis Services depende da permissão Bloquear páginas na memória como a imposição por trás de VertiPaqPagingPolicy = 0. Observe que não é recomendável desativar a paginação do Windows. Isso aumenta a taxa de erros de falta de memória para operações que poderiam ter sucesso se a paginação estivesse autorizada. Consulte Propriedades de memória para obter mais informações sobre a VertiPaqPagingPolicy. |
Para exibir ou adicionar privilégios do Windows na conta de serviço
Execute 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.
Revise políticas que incluam SQLServerMSASUser$. Este é um grupo de segurança local encontrado em computadores com uma instalação do Analysis Services. Os privilégios e permissões de pastas de arquivos do Windows são concedidos a esse grupo de segurança. Clique duas vezes na política Fazer logon como serviço para ver como o grupo de segurança é especificado no sistema. O nome completo do grupo de segurança varia dependendo se o Analysis Services foi instado como uma instância nomeada. Use esse grupo de segurança em vez da conta de serviço real quando adicionar privilégios de conta.
Para adicionar privilégios de conta em GPEdit, clique com o botão direito em Aumentar conjunto de trabalho de processo e selecione Propriedades.
Clique em Adicionar Usuário ou Grupo.
Insira o grupo de segurança da instância do Analysis Services. Lembre-se de que o nome consiste o grupo de segurança, máquina e nome da instância
A lista a seguir mostra dois exemplos de uma instância padrão "MSSQLSERVER" e uma instância nomeada "Tabular" em um computador denominado "SQL01-WIN12", em que o nome do computador é o domínio local.
SQL01-WIN12\SQLServerMSASUser$SQL01-WIN12$MSSQLSERVER
SQL01-WIN12\SQLServerMSASUser$SQL01-WIN12$TABULAR
Repita o procedimento para Ajustar quotas de memória para um processo e, opcionalmente, para Bloquear páginas na memória ou Aumentar a prioridade de planejamento.
Observação |
---|
Versões anteriores da Instalação adicionaram inadvertidamente a conta de serviço do Analysis Services ao grupo Usuários de Log de Desempenho. Embora essa falha tenha sido corrigida, talvez instalações existentes tenham essa associação de grupo desnecessária. Como a conta de serviço do Analysis Services não requer associação no grupo Usuários de Log de Desempenho, você pode removê-la do grupo. |
Permissões do sistema de arquivos atribuídas ao 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 7.0 para obter informações de permissão de arquivo relativas à configuração do IIS e ao Analysis Services. |
Todas as permissões do sistema de arquivos necessárias para as operações do servidor ─ incluindo permissões necessárias para o carregamento e descarregamento de bancos de dados a partir de uma pasta de dados designada ─ são atribuídas pela Instalação do SQL Server durante a instalação.
Lembre-se de que o detentor da permissão sobre arquivos de dados, executáveis de arquivos do 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.
Um grupo de segurança é criado para cada instância que você instalar. O grupo de segurança tem o nome da instância ─ SQLServerMSASUser<servername>$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 \MSAS11.MSSQLSERVER\OLAP\BIN, notará que o grupo de segurança (não a conta de logon ou SID por serviço) é o detentor da permissão nesse diretório.
O grupo de segurança contém um único membro: o SID (identificador de segurança) por serviço da conta de inicialização da instância Analysis Services. A instalação adiciona o SID por serviço ao grupo de segurança local. O uso de um grupo de segurança local, com a sua associação SID, é uma pequena, mas notável diferença 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ê achar que as permissões de arquivos estão corrompidas, siga estas etapas para verificar se o serviço ainda está provisionado corretamente:
Use a ferramenta de linha de comando Controle de Serviços (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 a seguinte sintaxe:
SC showsid MSOlap$Tabular
Use Gerenciador de Computador | Usuários e Grupos Locais | Grupos para inspecionar a associação do grupo de segurança SQLServerMSASUser$<servername>$<instancename>.
O SID do membro deve coincidir com o SID por serviço a partir da etapa 1.
Use Windows Explorer | Arquivos de Programas | Microsoft SQL Server | MSASxx.MSSQLServer | OLAP | bin para verificar se as propriedades de segurança de pasta são concedidas ao grupo de segurança na etapa 2.
Observação |
---|
Nunca remova nem modifique um SID. Para restaurar um SID por serviço que tenha sido excluído inadvertidamente, consulte https://support.microsoft.com/kb/2620201. |
Mais sobre o SID por serviço
Cada conta do Windows tem um SID associado, mas os serviços também podem ter SIDs, os chamados SIDs por serviço. Um SID por serviço é criado quando a instância do serviço é instalada, como um elemento único e permanente do serviço. O SID por serviço é um SID de computador local gerado do nome do serviço. Em uma instância padrão, seu nome de usuário amigável é NT SERVICE\MSSQLServerOLAPService.
O benefício de um SID por serviço é que ele permite que o nome da conta de logon mais amplamente visível seja mudado arbitrariamente, sem afetar as permissões de arquivo. Por exemplo, digamos que você instalou duas instâncias do Analysis Services, uma instância padrão e uma instância nomeada, ambas executadas na mesma conta de usuário do Windows. Embora a conta de logon seja compartilhada, cada instância de serviço terá um SID por serviço exclusivo. Esse SID é diferente do SID da conta de usuário de logon. O SID por serviço é usado para permissões de arquivo e privilégios do Windows. Por outro lado, a conta de logon SID é usada para cenários de autenticação e autorização ─ SIDS diferentes, usados para finalidades diferentes.
Como o SID é imutável, os ACLs de sistema de arquivos que você criou durante a instalação do serviço podem ser usados por tempo indeterminado, independentemente de quantas vezes você alterar a conta de serviço. Como medida adicional de segurança, as ACLs que especificam permissões via um SID garantem que os executáveis do programa e as pastas de dados sejam acessados somente por uma única instância de um serviço, mesmo que outros serviços sejam executados na mesma conta.
Concedendo permissões adicionais para operações de servidor específico
O Analysis Services executa algumas tarefas no contexto de segurança da conta de serviço (ou conta de logon) que é usada para iniciar o Analysis Services, e executa outras tarefas no contexto de segurança do usuário que está solicitando a tarefa.
A tabela a seguir descreve as permissões adicionais necessárias para oferecer suporte a tarefas executadas como a conta de serviço.
Operação de servidor |
Item de Trabalho |
Justificativa |
---|---|---|
Acesso remoto a fontes de dados relacionais externas |
Criar um logon de banco de dados da conta de serviço |
O processamento se refere à recuperação de dados de uma fonte de dados externos (em geral, um banco de dados relacional), que é subsequentemente carregada em um banco de dados do Analysis Services. Uma das opções de credencial para recuperar dados externos é usar a conta de serviço. Esta 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 o 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 nos dados de origem para processar as partições ROLAP (isto é, para armazenar agregações). |
DirectQuery |
Criar um logon de banco de dados da conta de serviço |
O DirectQuery é um recurso de tabela usado para consultar conjuntos de dados externos que são grandes demais para caber no modelo de tabela ou têm outras características que tornam o DirectQuery mais adequado do que a opção padrão de armazenamento na memória. Uma das opções de conexão disponíveis no modo DirectQuery é usar a conta de serviço. Novamente, esta opção só funciona 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 dos casos, esta opção engloba uma conexão de salto duplo; portanto, configure a conta de serviço para delegação restrita de Kerberos para que a conta de serviço possa delegar identidades para um servidor downstream. Para obter mais informações, consulte Configurar o Analysis Services para delegação restrita de Kerberos. |
Acesso remoto a outras instâncias do SSAS |
Adicionar a conta de serviço a funções de banco de dados do Analysis Services definidas no servidor remoto |
Partições remotas e a referência a objetos vinculados em outras instâncias remotas do Analysis Services são ambos recursos do sistema que exigem permissões em um computador ou dispositivo remoto. Quando alguém 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ê subsequentemente automatizar essas operações, o Analysis Services acessará instâncias remotas no contexto de segurança de sua conta de serviço. Para acessar os objetos vinculados em uma instância remota do Analysis Services, a conta de logon deve ter a permissão adequada para ler os objetos apropriados na instância remota, como o acesso de leitura em algumas 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 com 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 a 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 alguma dimensão ou cubo, a conta de serviço do Analysis Services deverá ter permissões de gravação na tabela de write-back do banco de dados relacional de origem do SQL Server. Se essa tabela ainda não existir e for necessário criá-la, a conta de serviço do Analysis Services também deverá ter permissões de criação de tabelas no banco de dados designado do SQL Server. |
Grave em uma tabela de log de consultas em um banco de dados relacional do SQL Server. |
Criar um logon 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 a análise subsequente. A conta de serviço do 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 for necessário criá-la, a conta de logon do Analysis Services também deve ter permissões de criação de tabelas no banco de dados designado do SQL Server. Para obter mais informações, consulte Melhorar o desempenho do SQL Server Analysis Services com o Assistente de Otimização Baseado no Uso (Blog) e Log de consultas no Analysis Services (Blog). |
Consulte também
Referência
Configurar contas de serviço e permissões do Windows
Outros recursos
Conta de Serviço do SQL Server e SID por serviço (Blog)