2008年DC上的SQL Server 2005 – 无法更改服务用户

在将我的2008 Server升级到DC后,我无法启动SQL Server 2005事务复制

所需的特权不由客户持有。

此网站build议我需要将SQL Server服务从我的域帐户更改为本地帐户,然后再返回到域帐户:

http://support.microsoft.com/kb/911305

不过,我在更改时遇到错误:

错误代码:0x80070534帐户名称和安全ID之间没有映射完成。

我发现这个http://social.msdn.microsoft.com/forums/en-US/sqlsetupandupgrade/thread/bf0c1eae-a1fa-4a63-b6a8-c18e81498780/ ,这表明我要删除一些registry项 – 但是我不'如果我不确定它会工作(也是Service Pack安装的一部分),我想删除它。 有任何想法吗?

有趣的问题。 我还没有启动一个testing实例来在我自己的盒子上重现这一点,但看起来像下面的键存储三个registry值是指由SQL Server 2005安装创build的组的SID:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\Setup 

值是AGTGROUP,FTSGROUP和SQLGROUP。 具有用于填充这些值的SID的组是(replace您的服务器计算机的名称和SQL实例名称):

 SQLServer2005MSSQLUser$SERVER-NAME$INSTANCE-NAME SQLServer2005MSFTEUsers$SERVER-NAME$INSTANCE-NAME SQLServer2005SQLAgentUsers$SERVER-NAME$INSTANCE-NAME 

我猜你推荐这个盒子作为现有域中的域控制器,而不是从这个盒子自己的本地用户和组(SAM)数据库中创build一个全新的域。

从我所看到的(再次,不要自责),你需要在这个服务器的域中创build新的组,然后获得新组的SID并把它们放到registry中。 它看起来像SQL Server安装的“修复”会做到这一点。 看看这篇文章从Microsoft Connect: http : //connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=202561

search该文章的短语“一个或多个SQL安全组已被删除”,并阅读通过解决方法。 它看起来像清理旧的组,并在修复模式下运行设置将做你想要的。 我相信,比试图重新创build他们手中的一些博客post和论坛post,我发现build议更好。

说了这么多,在开始改变之前,至less要备份registry和数据库的那一部分。 拥有良好的备份使得事情“正常工作”… <smile>