首先,我從其他伺服器還原了資料庫,現在所有預存程序都被命名為 [azamsharp].[usp_getlatestposts]。我認為 [azamsharp] 是前綴,因為它是原始伺服器上的使用者。
現在,在我的本機電腦上,它無法運作。我不希望所有預存程序都帶有 [azamsharp] 前綴。
另外,當我右鍵單擊預存程序時,我什至看不到屬性選項。我在 Windows 7 上執行 SQL Server 2005。
更新:
當我運行孤立用戶預存程序時,它顯示兩個用戶“azamsharp”和“dbo1”。我修復了“azamsharp”用戶,但“dbo1”沒有得到修復。當我運行以下腳本時:
exec sp_change_users_login 'update_one', 'dbo1', 'dbo1'
我收到以下錯誤:
訊息 15291,等級 16,狀態 1,程序 sp_change_users_login,第 131 行 終止此程序。登入名稱“dbo1”不存在或無效。
答案1
透過備份/還原完成的還原永遠不會重新命名資料庫中的任何物件。資料庫還原的結果與備份的資料庫相同。如果這些過程在復原的資料庫中命名為[架構]。
最有可能發生的情況是,您沒有意識到在舊伺服器上您登入的使用者俱有與之關聯的隱式模式,並且當您發出類似select from table
或 之類的語句時,execute usp_foo
您會自動綁定到預設模式。
您必須與舊伺服器的管理員聯繫,告知您在系統上擁有的權限和預設設置,然後要求新伺服器的管理員免費恢復您相同的權限和預設設定。