2009-09-15 68 views
3

我試圖使用VSDBCMD.exe實用程序部署Visual Studio數據庫項目(GDR R2)。我可以在連接字符串使用集成安全性時成功進行部署,但當切換到使用Sql Server身份驗證時,出現以下錯誤:VSDBCMD.exe不使用集成安全性的數據庫部署

未能導入目標模型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 

所有參數都在單獨的行僅用於顯示的原因。再次,當我將連接字符串更改爲集成安全性時,它可以工作。

運行Visual Studio和VSDBCMD.exe的Sql Server Profiler只顯示MyUserId的連接。 Visual Studio似乎沒有使用其他帳戶。但是所做的查詢是不同的。我想我應該不會感到驚訝的是,這些工具似乎行爲不同。

我不想向用戶添加特定的視圖定義權限,直到我找到爲什麼我可以通過Visual Studio成功完成。

謝謝。

回答

0

格蘭特查看定義確實使它工作。 Visual Studio似乎在暗中獲取其他地方的權限。