使用域用户的sqlpackage.exe

3

我有一个在PowerShell中运行的脚本。我使用一个带有用户名和密码的SQL登录,我想改用一个带有用户名和密码的域用户。

sqlpackage.exe /SourceFile:"<location of dacpac>" /Action:Publish /TargetServerName:"server" /TargetDatabaseName:"database" /TargetUser:"Deployment" /TargetPassword:"pass"

我希望知道如何将"/TargetUser:"Deployment" /TargetPassword:"pass""翻译成SQL命令,替换掉原有的内容。

Integrated Security=SSPI; User ID=domain\user;Password=pass1;

你有查看 sqlpackage.exe 的文档吗?它会告诉你如何准确地指定连接字符串。 - Daniel Mann
我已经阅读并尝试以10种不同的方式更改/SourceConnectionString,但它没有起作用。我不确定该怎么办。 - Astrid
“Not working”太过含糊,无法提供任何帮助。你遇到的确切错误信息是什么? - Daniel Mann
我不确定如何构建命令,这是我的问题。我有以下代码:sqlpackage.exe /SourceFile:“<soure.dacpac>”/Action:Publish /TargetConnectionString:“Server=<server>;Database=<database>;Integrated Security=SSPI; User ID=<domain user>;Password=<password>;”,但它绕过了用户名和密码,我收到以下错误消息:您必须在主服务器或目标服务器上拥有具有相同密码的用户。 - Astrid
1个回答

1
Integrated Security=SSPI 表示使用Windows身份验证,您不需要指定用户名和密码,如果指定也会被忽略。
对于Windows身份验证,它使用当前用户,因此构建代理应该以相应的用户身份运行,该用户具有将数据库发布到SQL Server的权限。(更改服务的登录帐户)
否则,您需要使用SQL身份验证(Integrated Security=false;UserId=xxx;Password=xxx

是的,这就是我之前读到的内容,我试图绕过这个问题。我正在从VSTS部署,并尝试使用域用户,这样我就不需要更改用户名和密码。 - Astrid
@Astrid 不太清楚你的意思,你是想在不改变代理商账户的情况下完成吗? - starian chen-MSFT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接