2014-01-22 50 views
0

我們有一個使用SQL Server身份驗證的SQL Server,可以部署的用戶以及其他可以讀取的數據庫,爲了簡單起見,我會稱之爲「部署」和「網絡」。發佈Visual Studio數據庫項目時可以忽略登錄嗎?

我很難使用Visual Studio(2012)數據庫項目設置權限,因爲「部署」用戶沒有足夠的權限來創建新的服務器登錄名。

我可以添加腳本,做這樣的事情:

GRANT SELECT ON foo.bar TO [web] 

這就生悶氣(用 「SQL71501:權限有一個懸而未決的參考對象[網絡]。」),直到我補充一下:

CREATE USER [web] FOR LOGIN [web]; 

這於是生悶氣(用 「SQL71501:用戶:[幅]具有未解決的引用登錄[網絡]。」),直到我添加:

CREATE LOGIN [web] WITH PASSWORD = '******'; 

這則失敗發佈:

刪除權限...
滴許可...
創建[WEBUSER] ...
(67,1):SQL72014:.net SqlClient數據提供:消息15247,級別16,狀態1,行1用戶沒有執行此操作的權限。
(67,0):SQL72045:腳本執行錯誤。執行的腳本:
CREATE LOGIN [webuser]
WITH PASSWORD ='**';

執行批處理時發生錯誤。

這是沒有意義的,因爲用戶已經存在,所以不應該需要創建

我怎樣才能讓出版通過部署用戶,但不嘗試(重新)創建登錄每一次?或者,是否可以引用外部創建的用戶,而不必發佈它?

回答

1

由於用戶已經存在,我懷疑用於執行部署的用戶沒有權限查看它。下面應該是你需要解決這個問題。

GRANT VIEW DEFINITION ON LOGIN::web TO deploy

相關問題