SQL Server instalação falhar após a remoção dos direitos padrão do usuário

Este artigo ajuda você a resolve um problema que ocorre quando você instala ou atualiza o Microsoft SQL Server depois de reforçar a segurança.

Aplica-se a: SQL Server

Sintomas

Considere o cenário em que você está executando o Microsoft SQL Server no Windows. Para reforçar a segurança, você remove alguns direitos padrão do usuário do grupo de administradores locais. Para configurar SQL Server no sistema, adicione a conta de configuração ao grupo de administradores locais.

Nesse cenário, se você tentar instalar ou atualizar SQL Server, o processo de instalação falhará e você poderá receber uma mensagem de erro que se assemelha a uma das mensagens listadas da seguinte maneira:

  • Cenário 1: Se uma nova instalação falhar, você receberá a seguinte mensagem de erro:

    Access is denied
    

    Você também pode receber mensagens de erro que se assemelham ao seguinte no arquivo Detail.txt :

    2009-01-02 13:00:17 SQLEngine: --SqlServerServiceSCM: Waiting for nt event 'Global\sqlserverRecComplete$NIIT' to be created  
    2009-01-02 13:00:20 SQLEngine: --SqlServerServiceSCM: Waiting for nt event 'Global\sqlserverRecComplete$NIIT' or sql process handle to be signaled  
    2009-01-02 13:00:20 Slp: Configuration action failed for feature SQL_Engine_Core_Inst during timing ConfigRC and scenario ConfigRC.  
    2009-01-02 13:00:20 Slp: Access is denied  
    2009-01-02 13:00:20 Slp: Configuration action failed for feature SQL_Engine_Core_Inst during timing ConfigRC and scenario ConfigRC.  
    2009-01-02 13:00:20 Slp: System.ComponentModel.Win32Exception: Access is denied  
    2009-01-02 13:00:20 Slp:    at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited)  
    2009-01-02 13:00:20 Slp:    at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited)  
    2009-01-02 13:00:20 Slp:    at System.Diagnostics.Process.OpenProcessHandle()  
    2009-01-02 13:00:20 Slp:    at System.Diagnostics.Process.get_Handle()  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlServerServiceBase.WaitSqlServerStart(Process processSql)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlServerServiceSCM.StartSqlServer(String[] parameters)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlServerStartup.StartSQLServerForInstall(String sqlCollation, String masterFullPath, Boolean isConfiguringTemplateDBs)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.ConfigSQLServerSystemDatabases(EffectiveProperties properties, Boolean isConfiguringTemplateDBs, Boolean useInstallInputs)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.DoCommonDBStartConfig(ConfigActionTiming timing)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.Install(ConfigActionTiming timing, Dictionary<string, string> actionData, PublicConfigurationBase spcb)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, Dictionary<string, string> actionData, PublicConfigurationBase spcbCurrent)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, Dictionary<string, string> actionData, PublicConfigurationBase spcbCurrent)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId)  
    2009-01-02 13:00:20 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream)  
    2009-01-02 13:00:20 Slp: Exception: System.ComponentModel.Win32Exception.  
    2009-01-02 13:00:20 Slp: Source: System.  
    2009-01-02 13:00:20 Slp: Message: Access is denied.  
    
  • Cenário 2: Se uma nova instalação do Microsoft SQL Server 2012 ou do Microsoft SQL Server 2008 R2 falhar, você receberá uma das seguintes mensagens de erro:

    Rule "Setup account privileges" failed.  
    
    The account that is running SQL Server Setup doesn't have one or all of the following rights: the right to back up files and directories, the right to manage auditing and the security log and the right to debug programs. To continue, use an account with both of these rights.
    
  • Cenário 3: Se a instalação de SQL Server 2012 ou uma versão posterior falhar quando você especificar um compartilhamento de rede (caminho UNC) para o local do diretório de backup, você receberá a seguinte mensagem de erro:

    SQL Server setup account does not have the `SeSecurityPrivilege` on the specified file server in the path *\<UNC backup location>*. This privilege is required to set folder security in the SQL Server setup program. To grant this privilege, use the Local Security Policy console on this file server to add SQL Server setup account to **Manage auditing and security log** policy. This setting is available in the **User Rights Assignments** section under Local Policies in the Local Security Policy console.
    

    Observação

    Esse problema ocorre porque a conta de configuração SQL Server não tem as SeSecurityPrivilege permissões no servidor de arquivos que hospeda o compartilhamento de rede.

Motivo

Se você estiver executando a configuração como um administrador local, precisará dos seguintes direitos de usuário para que a instalação seja executada com êxito:

Nome de exibição do objeto Política de Grupo local Direito do usuário
Arquivos e diretórios de backup SeBackupPrivilege
Programas de depuração SeDebugPrivilege
Gerenciar log de auditoria e segurança SeSecurityPrivilege

Observação

Para obter mais informações sobre as permissões necessárias para instalar SQL Server, consulte a seção "Pré-requisitos" nos seguintes artigos:

Se uma opção de armazenamento para diretório de dados ou outros diretórios (diretório de banco de dados do usuário, diretório de log do banco de dados do usuário, diretório TempDB, diretório de log tempDB ou diretório de backup) usará o compartilhamento de arquivos SMB, a conta de configuração exigirá as seguintes permissões adicionais no servidor de arquivos SMB, conforme descrito em Instalar SQL Server com armazenamento de compartilhamento de arquivos SMB.

Pasta de compartilhamento de rede SMB CONTROLE COMPLETO Conta de instalação do SQL
Pasta de compartilhamento de rede SMB CONTROLE COMPLETO conta de serviço SQL Server e SQL Server Agent
Servidor de arquivos SMB SeSecurityPrivilege Conta de configuração do SQL

Resolução

Para adicionar os direitos à conta de configuração, siga estas etapas:

  1. Faça logon como administrador.
  2. Selecione Iniciar>Execução, digite Administradores de controle e selecione OK.
  3. Clique duas vezes em Política de Segurança Local.
  4. Na caixa de diálogo Configurações de Segurança Local , selecione Políticas Locais, abra Atribuição de Direitos do Usuário e clique duas vezes em Arquivos e Diretórios de Backup.
  5. Na caixa de diálogo Arquivos de Backup e Propriedades de Diretórios , selecione Adicionar Usuário ou Grupo.
  6. Na caixa de diálogo Selecionar Usuário ou Grupos , insira a conta de usuário que você deseja usar para configuração e selecione OK duas vezes.

    Observação

    Para adicionar a conta de usuário para os Programas de Depuração e Gerenciar políticasde log de auditoria e segurança , execute as etapas 1 a 6 .

  7. No menu Arquivo , abra a caixa de diálogo Configurações de Segurança Local e selecione Sair para fechar.

Perguntas frequentes (perguntas frequentes)

Por que é SeSecurityPrivilege necessário no servidor de arquivos para o diretório de backup no compartilhamento UNC?

Essa permissão é necessária para recuperar ACLs (Controle de Acesso Listas) no diretório de backup padrão para garantir que a conta de serviço SQL Server tenha permissões completas na pasta. A conta de serviço também define as ACLs se as permissões estiverem ausentes para a conta de serviço SQL para que um backup do diretório possa ser executado. O programa de instalação executa essas verificações para o diretório de backup padrão para que, se um backup for executado após a instalação, você não sofrerá um erro (devido a permissões ausentes).

Observação

SeSecurityPrivilege é necessário alterar o dos get/set ACLs diretórios e subpastas. Isso é verdade mesmo se os usuários que têm permissões FULL CONTROL nos diretórios não tiverem permissões para e auditar get/set OWNER informações do diretório.

Por que o erro descrito no cenário 3 ocorre apenas no Microsoft SQL Server 2012 e versões posteriores?

A partir de SQL Server 2012, a Microsoft fornece suporte para dados e arquivos de log no compartilhamento de arquivos SMB. Como parte dessa melhoria, a experiência de instalação é aprimorada ainda mais para reforçar as verificações de segurança para que os clientes não encontrem erros ou problemas devido a permissões insuficientes após a instalação. Em versões pré-SQL Server 2012, os usuários ainda podem configurar o caminho de compartilhamento de rede para o diretório de backup se a conta do Serviço SQL não tiver permissões para executar um backup. No entanto, esses usuários sofrerão um erro após a instalação nessa situação. Esses cenários agora são impedidos quando você inicia o marcar de configuração do SQL 2012 em um compartilhamento de rede.

Mais informações

  • Para marcar a lista de privilégios que estão associados atualmente à conta de configuração, use a ferramenta AccessChk.exe. Para baixar essa ferramenta, consulte AccessChk v6.13.

    Uso: accesschk.exe- a \<setup account> *

    Por exemplo: c:\tools\accesschk.exe -a testdc\setupaccount *

      Sample output:
             SeSecurityPrivilege
              SeBackupPrivilege
              SeRestorePrivilege
              SeSystemtimePrivilege
              SeShutdownPrivilege
              SeRemoteShutdownPrivilege
              SeTakeOwnershipPrivilege
              SeDebugPrivilege
              SeSystemEnvironmentPrivilege
              SeSystemProfilePrivilege
              SeProfileSingleProcessPrivilege
              SeIncreaseBasePriorityPrivilege
              SeLoadDriverPrivilege
              SeCreatePagefilePrivilege
              SeIncreaseQuotaPrivilege
              SeChangeNotifyPrivilege
              SeUndockPrivilege
              SeManageVolumePrivilege
              SeImpersonatePrivilege
              SeCreateGlobalPrivilege
              SeTimeZonePrivilege
              SeCreateSymbolicLinkPrivilege
              SeInteractiveLogonRight
              SeNetworkLogonRight
              SeBatchLogonRight
              SeRemoteInteractiveLogonRight
    
  • Para obter mais informações, consulte Configurar contas e permissões do Serviço Windows.