Sql server 通过TeamCity执行具有集成安全性的Sql在用户登录时失败

Sql server 通过TeamCity执行具有集成安全性的Sql在用户登录时失败,sql-server,continuous-integration,teamcity,msbuild-4.0,msbuildextensionpack,Sql Server,Continuous Integration,Teamcity,Msbuild 4.0,Msbuildextensionpack,我有一个MSBuild脚本,它使用类似以下命令的MSBuildExtensionsSqlExecute命令: <Target Name="DoSqlStuff"> <SqlExecute TaskAction="Execute" UseTransaction="True" ConnectionString="Data Source=$(Sql_ServerName); Initial Catalog=$(S

我有一个MSBuild脚本,它使用类似以下命令的MSBuildExtensions
SqlExecute
命令:

<Target Name="DoSqlStuff">
    <SqlExecute TaskAction="Execute"
                UseTransaction="True"
                ConnectionString="Data Source=$(Sql_ServerName); Initial Catalog=$(Sql_DatabaseName); Integrated Security=SSPI;"
                Files="@(sqlFiles)"
                CommandTimeout="1800">
    </SqlExecute>
</Target>
我为此任务添加了一些调试输出:

<Message Text="Current user is $(USERNAME)" />
<Message Text="Current domain is $(USERDOMAIN)" />

通过cmd运行时,用户名为
danielm

通过TeamCity运行时,用户名为
danielm$

两者的域是相同的


我做错了什么,或者接下来需要执行哪些步骤才能获得更多信息?

经过一段令人尴尬的时间后,我终于明白了这一点

TeamCity构建代理服务已设置为以本地系统帐户登录

我进入服务,右键单击TeamCity构建代理->属性

“登录”选项卡,然后单击“以“此帐户”登录”单选按钮并设置我的凭据

将服务设置为以我的用户帐户登录,为MsBuild脚本提供了使用集成安全性登录的正确权限


最终,我们将在准备上线时为此目的创建一个用户。

代理是否作为您的域用户运行?
<Message Text="Current user is $(USERNAME)" />
<Message Text="Current domain is $(USERDOMAIN)" />