我们有一些部署脚本使用dacpacs通过sqlpackage和直接脚本使用sqlcmd。
当我执行sqlpackage dac\sqlpackage.exe /p:BlockOnPossibleDataLoss=False /p:BackupDatabaseBeforeChanges=True /a:Publish /sf:.\somedeploy.dacpac /tcs:"Data Source=MyDB;Initial Catalog=MyCatalog;Trusted_Connection=True;"
我收到错误消息*** Could not deploy package. Unable to connect to target server.
我在sql中启用了登录审核,而我收到的消息是Login failed. The login is from an untrusted domain and cannot be used with Windows authentication. [CLIENT: 111.222.223.224]
但是,通过使用-E参数,我可以通过sqlcmd运行我们的sql脚本没问题。
sqlcmd -i Permissions\CreateSqlUser.sql -S MyDB -E
我从命令行运行,该命令行设置为"以管理员身份运行"我目前以管理员身份登录。这是在Windows Server 2012 VM上运行的。我正在使用sql 2014.我们还有其他安装没有问题,但这是我们的第一次安装,所以我们试图确定是否有什么变化或者我们是否遗漏了什么,如果是的话。
如果我从探查器运行,我没有看到任何审核日志错误消息。我检查过滤器以及我正在听的事件,它们看起来都很好。我在运行exec sys.sp_readerrorlog 0, 1, 'Login Failed'
时在sql里面,我确实得到了这些消息。 (我可能在探查器中做了一些错误)。它们也出现在系统事件日志中。我没有看到任何地方告诉我有关尝试登录的用户的任何信息。
如果不使用sqlpackage的可信连接,而是使用用户名和密码,它可以正常工作。但是,我们的部署脚本所做的部分工作是创建用户,因此我们倾向于不这样做。