我正在尝试使用VSDBCMD.exe实用程序部署Visual Studio数据库项目(GDR R2)。我可以在连接字符串使用Integrated Security时成功部署,但是当我切换到使用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成功完成的原因之前,我不想向用户添加特定的“视图定义”权限。
感谢。
答案 0 :(得分:0)
Grant View Definition确实可以使用它。 Visual Studio似乎在其他地方秘密获取权限。