3

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

谢谢。

4

1 回答 1

0

Grant View Definition does make it work. Visual Studio just seems to be secretly getting permissions elsewhere.

于 2009-09-16T17:40:52.260 回答