Sql-Server
導入為 VS DB 項目後“未解決對使用者的引用”
我剛剛將現有的 SQL Server 2008r2 生產數據庫導入到 VS 2013 數據庫項目中。
我現在遇到了一些錯誤
Error SQL71501: User: [mydbuser] has an unresolved reference to Login [mydbuser].
我真的不需要我的 VS DB 項目來管理使用者,但我擔心如果它們不存在,它會在部署時嘗試刪除它們。
文件本身生成為
CREATE USER [mydbuser] FOR LOGIN [mydbuser];
要麼
CREATE USER [mydomainuser] FOR LOGIN [MYDOMAIN\mydomainuser];
錯誤標記顯示它專門用於Login。由於這是一個系統級對象,我可以理解它超出了 db 項目的範圍。
我是否願意將它們全部更改為
CREATE USER [mydbuser] WITHOUT LOGIN;
或將
CREATE LOGIN
子句添加到每個文件的開頭?刪除登錄引用似乎更簡單,完全刪除使用者將是最簡單的。
我想確保我按照預期的方式使用該工具。將其中任何一個重新發佈到生產環境中會不會有任何問題?通過項目添加使用者/登錄名的正確程序是什麼?
最簡單的方法是不通過 ssdt 管理使用者(大多數人不會)。所以你可以把它們去掉,不要部署登錄名或使用者。
有以下三種方式:
- 忽略使用者/登錄的新選項
- 寫一個部署貢獻者把他們拉出來
- 使用我的部署貢獻者http://agilesqlclub.Codeplex.com
和
我有同樣的問題並找到了這個連結
如果您創建特定於應用程序的登錄名(您應該這樣做),那麼您在嘗試建構解決方案時會遇到此錯誤。要更正此錯誤,請在進行模式比較(右鍵點擊數據庫項目以查找模式比較)時在選項(頂部的齒輪圖示)中選擇包含“非應用程序範圍”對像類型。然後,您可以將登錄資訊導入正常項目,並對引用進行排序。注意:如果您點擊“對像類型”選項卡並關閉對話框(它為我所做的),請使用 tab 鍵直到突出顯示應用程序範圍,然後按向下箭頭突出顯示非應用程序範圍並按空格鍵。現在您應該能夠點擊“確定”並查看登錄資訊。