我正在尝试使用 VSDBCMD.exe 实用程序部署 Visual Studio 数据库项目 (GDR R2)。当连接字符串使用集成安全性时,我可以成功部署,但是当我切换到使用 Sql Server 身份验证时,我收到以下错误:
导入目标模型 MyCatalog 失败。详细消息 逆向工程操作无法继续,因为您没有“MyCatalog”数据库的查看定义权限。
通过 Visual Studio 部署时,我可以使用 Sql Server 身份验证成功部署。
这是我用来运行的命令:
vsdbcmd
/a:deploy
/dsp:sql
/dd-
/cs:"Data Source=localhost;Initial Catalog=MyCatalog;User ID=MyUserId;Password=MyPassword"
/script:C:\MyDbScriptFile.sql
/manifest:C:\Database.deploymanifest
/p:DeploymentConfigurationFile=C:\Database.sqldeployment
/p:SqlCommandVariablesFile=C:\Database.sqlcmdvars
仅出于显示原因,所有参数都位于单独的行中。同样,当我将连接字符串更改为 Integrated Security 时,它可以工作。
为 Visual Studio 和 VSDBCMD.exe 运行 Sql Server Profiler 仅显示 MyUserId 的连接。Visual Studio 似乎没有使用其他帐户。但是提出的查询是不同的。我想我不应该对这些工具的行为不同而感到惊讶。
在找出为什么可以通过 Visual Studio 成功完成之前,我不想向用户添加特定的视图定义权限。
谢谢。