Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
如果在TFS2005部署中,数据层服务器上SQL 服务运行在localsystem帐户下,而不是一个域用户帐户,那么TFS2005 SP1安装可能会遇到下面的问题:
症状:
=============
l TFS2005 SP1安装程序中途消失,没有任何错误信息出现;
l SP1没有成功安装。且安装程序消失之后,客户端无法访问TFS服务;
l SP1安装日志中可以看到如下内容(采自英文版)
08/29/07 17:06:22 DDSet_Status: Commandline: "C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\TFSQuiesce.exe" /n:"Quiesce ATDT"
……
Blocking service account from accessing database TFSActivityLogging
Could not obtain information about Windows NT group/user 'KF\tfsservice', error code 0x5.
……
Workflow 'Quiesce ATDT' failed! ExitCode = 9000.
……
Action ended 17:06:50: InstallFinalize. Return value 3.
----------------------------------------------------
--- Failure on trying to access TFSActivityLogging database
已有的规避方法:
================
KB948778 提供了规避问题的方法:配置SQL服务使用一个域管理员身份帐户运行。
但是有些用户可能出于安全管理策略的限制,需要避免使用如此敏感的帐户。其实,SQL服务使用LocalSystem帐户的情况下,只要做一些权限上的检查和配置,依然可以成功安装TFS2005 SP1。这里是分享我的经验。
问题根源:
=================
从日志中我们可以了解到安装失败发生在操作数据库的过程中,因此我们收集了SQL Server Profiler日志(这是什么?)。日志显示错误发生在针对TFSWorkItemTracking数据库执行一条指令时:
alter login [domain\TFS_Service_Account] disable
错误: 无法获取关于Windows NT 组/用户 “domain\account”的信息,错误号0x5 (0x5 代表访问被拒-作者)
SQL Server, Active Directory和TFS技术支持工程师协作弄清了整个错误发生过程:
1. ”Alter login”语句比较特殊。执行这条语句的时候,SQL Server不是使用执行setup的交互式登陆用户身份,而是使用SQL服务帐户LocalSystem;
2. SQL在执行语句的时候,需要查询域控制器上保存的用户组成员数据。使用数据库服务器LocalSystem帐户执行的查询在域控制器上看来是来自该计算机帐户;
3. 在一个2003活动目录中,默认的安全策略认为所有可识别用户(包括数据层服务器帐户)属于“pre-windows 2000 compatible access”组。这个组的成员可以访问所有的AD对象数据。但是在我的客户的域中,由于安全方面的考虑它们修改了默认安全设置。数据层服务器帐户不再是“pre-windows 2000 compatible access”组成员,因此也不再被允许访问所需的AD组成员信息。
解决方案:
===============
在域控制器上运行下面的命令恢复默认AD组成员关系:
net localgroup "pre-windows 2000 compatible access" "nt authority\authenticated users” /add
net localgroup “Pre-Windows 2000 Compatible Access” Domain\DTBoxName$ /Add
之后我们就可以在SQL服务使用LocalSystem帐户的情况下成功安装TFS2005SP1了。
结论是,安装TFS2005SP1并不一定需要SQL服务运行于域管理员身份下。只要服务帐户可以查询所需域对象信息就OK。
Comments
- Anonymous
April 06, 2009
PingBack from http://blogs.msdn.com/emmamou/archive/2009/04/07/install-tfs-2005-sp1-with-sql-service-running-under-localsystem-account.aspx