2015-02-24 49 views
2

作为电子邮件警报的结果,我们遇到了一些与我们的TFS安装(TFS 2013 Update 4,SQL 2014 Standard)有关的问题。最值得注意的是,无法创建工作项目,因为这会触发电子邮件。TFS使用什么SQL用户发送警报?

任何时间的进程或用户尝试创建一个工作项,

TF30040: The database is not correctly configured. Contact your Team Foundation Server administrator. 

接收到错误。此外,当我检查事件查看器在服务器上,我可以看到错误,它报告的内部异常是:

Exception Message: The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'. (type SqlException) 

我与DBA的工作,我们已经在服务器上启用电子邮件警报。我们已经证实,通常情况下,警报通过使用管理控制台上的测试按钮来工作。我还可以通过网络界面设置检入警报,并且可以毫无问题地接收警报。这似乎是特别影响工作项目创建警报(显然只是自动且不可撤销地启用)。

大概我们可以通过给予适当的权限来使用该存储过程来解决这个问题。为此,我们需要知道要授予哪些用户权限。到目前为止,我们已经尝试给予我的AD用户,构建服务使用的服务帐户和网络服务帐户(似乎是TFS服务帐户)的执行权限。

在任何错误消息中没有指示正在使用哪个用户执行该过程。所以,我的问题是:创建工作项目时,用什么SQL用户发送警报?

编辑: 为了记录,这开始自行工作。我们星期一决定给微软打电话来解决这个问题。在此之前,失败的版本神奇地创建了一些工作项目(星期二,我们放弃了整整一天),现在我们可以创建工作项目。每个参与国都没有做任何事情。我们很困惑,但方式很好。

+1

您是否尝试过检查剖析器跟踪? – 2015-02-24 21:12:45

+0

@TabAlleman不,我们甚至没有发生过。目前DBA状态太忙,但应该由EOB完成。 – 2015-02-24 21:23:23

+0

分析器跟踪没有帮助。与错误一起返回的用户名(我们从未见过该命令)被混淆了(您有时在注册表中看到的S-n-n-nnnnnn垃圾)。它看起来可能是一个普通用户,我们试图让该用户成为系统管理员,但没有工作。 – 2015-02-25 02:24:19

回答

2

我打算告诉你,DBA不应该对TFS数据库进行更改。我建议在MSFT上打开一张票并从产品支持小组获得帮助。

+0

数据库没有变化。我在MSDN论坛上对该问题有一个开放的线索,但是当存在特定问题时,该网站通常会更快。 – 2015-02-25 03:30:25

+1

你的问题陈述了你尝试过的几件事。那些没有改变到数据库?我在这里很认真。 MSFT不支持对数据库的任何SQL访问,包括SELECT操作。要非常小心,不要让自己陷入不受支持的情况。至少需要备份数据库并使用文档化的过程将其恢复到沙箱环境中,并在那里进行测试。我为财富50强公司运行TFS,并且我可以从个人经验告诉你,开发人员支持团队通过升级到产品团队进行备份有助于解决问题 – 2015-02-25 03:37:45

+0

对TFS数据库的唯一改变就是开启警报。但是,这是通过Microsoft提供的界面使用来自Microsoft创建的网站的指示完成的。权限更改已完成msdb,因为这是sp_send_dbmail proc存在的位置。 – 2015-02-25 04:24:58