SQL SERVER 2005 與 Windows 7 問題

SQL SERVER 2005 與 Windows 7 問題

首先,我從其他伺服器還原了資料庫,現在所有預存程序都被命名為 [azamsharp].[usp_getlatestposts]。我認為 [azamsharp] 是前綴,因為它是原始伺服器上的使用者。

現在,在我的本機電腦上,它無法運作。我不希望所有預存程序都帶有 [azamsharp] 前綴。

另外,當我右鍵單擊預存程序時,我什至看不到屬性選項。我在 Windows 7 上執行 SQL SERVER 2005。

更新:

奇怪的是,如果我從我的機器存取生產資料庫,我可以看到屬性選項。所以,Windows 7的安全性確實有問題。

更新2:

當我運行孤立用戶預存程序時,它顯示兩個用戶“azamsharp”和“dbo1”。我修復了“azamsharp”用戶,但“dbo1”沒有得到修復。當我運行以下腳本時:

exec sp_change_users_login 'update_one', 'dbo1', 'dbo1' 我收到以下錯誤:

訊息 15291,等級 16,狀態 1,程序 sp_change_users_login,第 131 行 終止此程序。登入名稱“dbo1”不存在或無效。

答案1

您可能有孤立使用者。當您從電腦存取伺服器時,您的網域憑證可能可以作為 DBadmin 存取生產伺服器。運行此程式碼來偵測孤立用戶:

Use TestDB
sp_change_users_login 'report'

輸出列出了所有登入名,這些登入名稱在 TestDB 資料庫的 sysusers 系統表和 master 資料庫的 sysxlogins 系統表中的條目之間不符。解決問題:

解決孤立使用者問題

Use TestDB
sp_change_users_login 'update_one', 'test', 'test' 

SELECT sid FROM dbo.sysusers WHERE name = 'test'
0x40FF09E48FBD3354B7833706FD2C61E4

use master
SELECT sid FROM dbo.sysxlogins WHERE name = 'test'
0x40FF09E48FBD3354B7833706FD2C61E4

這會將伺服器登入名稱「test」與 TestDB 資料庫使用者「test」重新連結。 sp_change_users_login 預存程序也可以使用「auto_fix」參數執行所有孤立使用者的更新,但不建議這樣做,因為 SQL Server 會嘗試按名稱來匹配登入名稱和使用者。對於大多數情況,這是有效的;但是,如果錯誤的登入與使用者關聯,則使用者可能擁有不正確的權限。

相關內容