使用VSDBCMD.exe进行数据库部署而不使用集成安全性

时间:2009-09-15 21:40:08

标签: visual-studio-2008 visual-studio-dbpro

我正在尝试使用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成功完成的原因之前,我不想向用户添加特定的“视图定义”权限。

感谢。

1 个答案:

答案 0 :(得分:0)

Grant View Definition确实可以使用它。 Visual Studio似乎在其他地方秘密获取权限。