如果安装程序帐户不具有特定用户权限,SQL Server 安装失败

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 2000257
症状

请考虑下面的方案。为增强安全性,您可以删除 Windows 操作系统的系统上的本地管理员组的某些默认用户权限。准备设置 Microsoft SQL Server 在此系统上,安装程序帐户添加到本地管理员组。

在此情况下,如果您在安装或升级到 Microsoft SQL Server,安装过程可能会失败,并且您会收到各种错误消息,如以下各节中所述。

方案 1:为新的安装,安装程序失败,并且您会收到以下错误消息:

访问被拒绝

此外,您可能会注意到如下所示的 Detail.txt 文件中的错误消息

2009-01-02 13:00: 17 SQLEngine:-SqlServerServiceSCM: 等待 nt 事件 Global\sqlserverRecComplete$ NIIT 被创建

2009-01-02 13:00:20 SQLEngine:-SqlServerServiceSCM: 等待 nt 事件 Global\sqlserverRecComplete$ NIIT 或 sql 进程句柄发出信号

2009-01-02 13:00:20 Slp: 计时 ConfigRC 和 ConfigRC 的方案过程中配置操作失败 SQL_Engine_Core_Inst 功能。

2009-01-02 13:00:20 Slp: 访问被拒绝

2009-01-02 13:00:20 Slp: 计时 ConfigRC 和 ConfigRC 的方案过程中配置操作失败 SQL_Engine_Core_Inst 功能。

2009-01-02 13:00:20 Slp: System.ComponentModel.Win32Exception: 访问被拒绝

2009-01-02 13:00:20 Slp: 在 System.Diagnostics.ProcessManager.OpenProcess (Int32 processId、 Int32 访问、 布尔型 throwIfExited)

2009-01-02 13:00:20 Slp: 在 System.Diagnostics.Process.GetProcessHandle (Int32 访问、 布尔型 throwIfExited)

2009-01-02 13:00:20 Slp: 在 System.Diagnostics.Process.OpenProcessHandle()

2009-01-02 13:00:20 Slp: 在 System.Diagnostics.Process.get_Handle()

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlEngine.SqlServerServiceBase.WaitSqlServerStart (进程 processSql)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlEngine.SqlServerServiceSCM.StartSqlServer (字符串 [] 参数)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlEngine.SqlServerStartup.StartSQLServerForInstall (字符串 sqlCollation、 masterFullPath 字符串、 布尔型 isConfiguringTemplateDBs)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.ConfigSQLServerSystemDatabases (EffectiveProperties 属性、 布尔型 isConfiguringTemplateDBs、 布尔型 useInstallInputs)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.DoCommonDBStartConfig (ConfigActionTiming 计时)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.Install ConfigActionTiming 计时、 字典"2 需该参数 (PublicConfigurationBase spcb)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute ConfigActionScenario 方案、 ConfigActionTiming 计时、 字典"2 需该参数 (PublicConfigurationBase spcbCurrent)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute ConfigActionScenario 方案、 ConfigActionTiming 计时、 字典"2 需该参数 (PublicConfigurationBase spcbCurrent)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction (字符串 actionId)

2009-01-02 13:00:20 Slp: 在 Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute (字符串 actionId,TextWriter errorStream)

2009-01-02 13:00:20 Slp: 异常: System.ComponentModel.Win32Exception。

2009-01-02 13:00:20 Slp: 源: 系统。

2009-01-02 13:00:20 Slp: 消息: 访问被拒绝。


方案 2
: Engine_SqlEngineHealthCheck 规则上,升级到 SQL Server 2008年将报告以下错误消息:

规则名称: Engine_SqlEngineHealthCheck
规则说明: 检查是否可以重新启动 SQL Server 服务;或者,对于群集实例,是否该 SQL Server 资源处于联机状态。
结果: 失败
消息/纠正措施: SQL 服务器服务无法重新启动;群集实例,该 SQL Server 资源并不在线

此外,您可能会注意到如下所示的 Detail.txt 文件中的错误消息

2009-05-27 17:50:20 SQLEngine:: 检查引擎检查点 GetSqlServerProcessHandle_1
2009-05-27 17:50:20 SQLEngine:-SqlServerServiceSCM: 等待 nt 事件 Global\sqlserverRecComplete 美元 SQL10 要创建
2009-05-27 17:50:22 SQLEngine:-SqlServerServiceSCM: 等待 nt 事件 Global\sqlserverRecComplete 美元 SQL10 或 sql 进程句柄发出信号
2009-05-27 17:50:22 SQLEngine:-FacetSqlEngineHealthCheck: Engine_SqlEngineHealthCheck: 错误: 访问被拒绝

Scenario3:新安装的 Microsoft SQL Server 2012年或 Microsoft SQL Server 2008 R2 失败

当您尝试安装的 SQL Server 2012年或 SQL Server 2008 R2 新实例时,您会看到以下错误消息:

"安装程序的帐户权限"规则失败。
运行 SQL Server 安装程序的帐户没有一个或所有下列权利:
右若要备份文件和目录、 权管理审核和安全日志和调试程序的权利。

原因

此行为是设计使然。除了添加的用户帐户,以本地管理员身份运行安装程序,安装程序的用户帐户需要安装程序才能成功完成下列默认用户权限:

注意有关安装 SQL Server 所需的权限的详细信息,请参阅下面的 MSDN 网站上的"先决条件"部分:

如何: 安装 SQL Server 2008 (安装程序)

从安装向导 (安装程序) 安装 SQL Server 2012

本地策略对象显示名称用户权限
备份文件和目录SeBackupPrivilege
调试程序SeDebugPrivilege
管理审核和安全日志SeSecurityPrivilege

解决方案

若要添加到本地管理员帐户的权限,请执行以下步骤:

  1. 具有管理凭据的用户身份登录到计算机上。
  2. 单击开始,单击运行,键入控件 admintools,,然后单击确定
  3. 双击本地安全策略
  4. 本地安全设置对话框中,单击本地策略,双击用户权限分配,然后双击备份文件和目录
  5. 备份文件和目录属性对话框中,单击添加用户或组
  6. 选择用户或组对话框中,键入正在使用的安装程序中,用户帐户,然后单击确定两次。
  7. "原因"一节中提到的其他两个策略重复该过程。
  8. 文件菜单上单击退出以关闭本地安全设置对话框。
更多信息

  • 若要检查当前与用于安装的帐户关联的权限的列表,您可以使用 AccessChk.exe 工具。若要下载此工具,请访问位于以下位置:

http://technet.microsoft.com/en-us/sysinternals/bb664922.aspx

用法: accesschk.exe -< 安装程序帐户 > *

例如:

c:\tools\accesschk.exe-testdc\setupaccount *

输出示例:

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

警告:本文已自动翻译

属性

文章 ID:2000257 - 上次审阅时间:09/27/2015 05:46:00 - 修订版本: 5.0

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Enterprise Evaluation, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard

  • kbmt KB2000257 KbMtzh
反馈