Поделиться через


Установка SQL Server завершается сбоем после удаления прав пользователя по умолчанию

Эта статья поможет устранить проблему, возникающую при установке или обновлении Microsoft SQL Server после ужесточения безопасности.

Применяется к: SQL Server

Симптомы

Рассмотрим сценарий, в котором выполняется Microsoft SQL Server в Windows. Чтобы ужесточить безопасность, удалите некоторые права пользователя по умолчанию из группы локальных администраторов. Чтобы настроить SQL Server в системе, добавьте учетную запись установки в группу локальных администраторов.

В этом сценарии, если вы попытаетесь установить или обновить SQL Server, процесс установки завершается сбоем, и может появиться сообщение об ошибке, похожее на одно из сообщений, перечисленных ниже.

  • Сценарий 1. Если новая установка завершается ошибкой, вы получите следующее сообщение об ошибке:

    Access is denied
    

    В файле 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.  
    
  • Сценарий 2. Если новая установка Microsoft SQL Server 2012 или Microsoft SQL Server 2008 R2 завершается ошибкой, вы получите одно из следующих сообщений об ошибках:

    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.
    
  • Сценарий 3. Если установка SQL Server 2012 или более поздней версии завершается сбоем при указании сетевого ресурса (UNC-пути) для расположения каталога резервного копирования, вы получите следующее сообщение об ошибке:

    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.
    

    Примечание.

    Эта проблема возникает, так как учетная запись установки SQL Server не имеет SeSecurityPrivilege разрешений на файловом сервере, на котором размещена сетевая папка.

Причина

Если вы выполняете настройку от имени локального администратора, для успешного выполнения установки требуются следующие права пользователя:

Отображаемое имя объекта локальной групповой политики Право пользователя
Резервные копии файлов и каталогов SeBackupPrivilege
Отладка программ SeDebugPrivilege
Управление журналом аудита и безопасности SeSecurityPrivilege

Примечание.

Дополнительные сведения о разрешениях, необходимых для установки SQL Server, см. в разделе "Предварительные требования" в следующих статьях:

Если параметр хранилища для каталога данных или других каталогов (каталог пользовательской базы данных, каталог журнала базы данных пользователя, каталог TempDB, каталог журнала TempDB или каталог резервного копирования) использует общую папку SMB, учетная запись установки требует следующих дополнительных разрешений на файловом сервере SMB, как описано в разделе "Установка SQL Server с хранилищем общей папки SMB".

Папка сетевого ресурса SMB ПОЛНЫЙ КОНТРОЛЬ Учетная запись установки SQL
Папка сетевого ресурса SMB ПОЛНЫЙ КОНТРОЛЬ Учетная запись службы SQL Server и агент SQL Server
Файловый сервер SMB SeSecurityPrivilege Учетная запись установки SQL

Решение

Чтобы добавить права в учетную запись установки, выполните следующие действия.

  1. Войдите в систему как администратор.
  2. Нажмите кнопку "Запустить">, введите панели администрирования control, а затем нажмите кнопку "ОК".
  3. Дважды щелкните локальную политику безопасности.
  4. В диалоговом окне "Локальные параметры безопасности" выберите "Локальные политики", откройте назначение прав пользователя и дважды щелкните "Файлы резервного копирования" и каталоги.
  5. В диалоговом окне "Свойства файлов резервного копирования и каталогов" выберите "Добавить пользователя или группу".
  6. В диалоговом окне "Выбор пользователя или группы" введите учетную запись пользователя, которую вы хотите использовать для настройки, и нажмите кнопку "ОК" два раза.

    Примечание.

    Чтобы добавить учетную запись пользователя для отладочных программ и управления политиками аудита и журналов безопасности, выполните шаги 1–6.

  7. В меню "Файл" откройте диалоговое окно "Параметры локальной безопасности" и нажмите кнопку "Выйти ", чтобы закрыть.

Часто задаваемые вопросы

Почему требуется SeSecurityPrivilege на файловом сервере для каталога резервного копирования в UNC-ресурсе?

Это разрешение необходимо для получения списков контроль доступа (ACL) в каталоге резервных копий по умолчанию, чтобы убедиться, что учетная запись службы SQL Server имеет полные разрешения в папке. Учетная запись службы также задает списки управления доступом, если отсутствуют разрешения для учетной записи службы SQL, чтобы можно было запустить резервную копию каталога. Программа установки выполняет эти проверки для каталога резервного копирования по умолчанию, чтобы при выполнении резервной копии после установки не возникла ошибка (из-за отсутствия разрешений).

Примечание.

SeSecurityPrivilege требуется изменить get/set ACLs каталоги и вложенные папки. Это верно, даже если у пользователей с разрешениями FULL CONTROL в каталогах нет разрешений на get/set OWNER доступ и аудит сведений из каталога.

Почему ошибка, описанная в сценарии 3, возникает только в Microsoft SQL Server 2012 и более поздних версиях?

Начиная с SQL Server 2012 корпорация Майкрософт поддерживает файлы данных и журналов в общей папке SMB. В рамках этого улучшения процесс установки дополнительно улучшается для ужесточения проверок безопасности, чтобы клиенты не сталкивались с ошибками или проблемами из-за нехватки разрешений после установки. В предварительной версии SQL Server 2012 пользователи по-прежнему могут настроить путь к сетевому ресурсу для каталога резервного копирования, если у учетной записи службы SQL нет разрешений на запуск резервной копии. Однако эти пользователи будут испытывать ошибку после установки в этой ситуации. Эти сценарии теперь препятствуют при запуске проверки установки SQL 2012 в сетевой папке.

Дополнительная информация

  • Чтобы проверить список привилегий, связанных с учетной записью установки, используйте средство AccessChk.exe . Чтобы скачать это средство, см. статью AccessChk версии 6.13.

    Использование: accesschk.exe- a \<setup account> *

    Например: 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
    
  • Дополнительные сведения см. в статье Настройка учетных записей службы Windows и разрешений.