TFS 使用哪个 SQL 用户发送警报?

What SQL user is used by TFS to send alerts?

由于电子邮件警报,我们 运行 遇到了 TFS 安装(TFS 2013 Update 4,SQL 2014 Standard)的一些问题。最值得注意的是,无法创建工作项,因为这会触发电子邮件。

每当进程或用户尝试创建工作项时,错误

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 一起工作过,我们在服务器上启用了电子邮件警报。我们已经验证,一般来说,警报可以通过使用管理控制台上的测试按钮来工作。我还可以通过 Web 界面设置签到提醒,并毫无问题地接收上述提醒。这似乎特别影响工作项创建警报(显然只是自动且不可撤销地启用)。

据推测,我们可以通过授予使用该存储过程的适当权限来纠正此问题。为此,我们需要知道要授予哪些用户权限。到目前为止,我们已尝试向我的 AD 用户、构建服务使用的服务帐户和网络服务帐户(似乎是 TFS 服务帐户)授予执行权限。

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

编辑: 根据记录,这是自动开始工作的。我们决定在周一致电 Microsoft 以解决此问题。在那之前,失败的构建神奇地创建了一些工作项(星期二,我们放弃后的一整天),我们现在能够创建工作项。每个参与的人都说什么都没做。我们感到困惑,但以一种好的方式。

我要建议您 DBA 不应该对 TFS 数据库进行更改。我建议与 MSFT 联系并获得产品支持组的帮助。