mysql孤立鎖 SQL孤立使用者解決方案

2021-10-19 22:02:07 字數 2003 閱讀 9113

中國最大的web開發資源**及技術社群,

prb:聯機叢書中的「孤立使用者疑難解答」主題不完整

文章 id : 274188

最後更新日期 : 2023年5月31日

版本 : 1.0

本頁內容

症狀狀態

更多資訊

參考症狀

當您將資料庫備份恢復到另一台伺服器時,可能會遇到孤立使用者的問題。sql server 聯機叢書中的孤立使用者疑難解答主題中沒有講述解決此問題的具體步驟。

本文介紹了如何解決孤立使用者問題。

狀態microsoft 已經確認這是在本文開頭列出的 microsoft 產品中存在的問題。

更多資訊

雖然術語「登入」和「使用者」經常交換使用,但它們之間有很大的不同。登入用於使用者身份驗證,而資料庫使用者帳戶用於資料庫訪問和許可權驗證。登入通過安全識別符 (sid) 與使用者關聯。訪問 sql server 伺服器需要登入。驗證特定登入是否有效的過程稱為「身份驗證」。登入必須與 sql server 資料庫使用者相關聯。您使用使用者帳戶控制資料庫中執行的活動。如果資料庫中不存在針對特定登入的使用者帳戶,使用該登入的使用者即使能夠連線到 sql server 伺服器,也無法訪問資料庫。但是,該情形的唯一例外是當資料庫包含「guest」使用者帳戶時。與使用者帳戶不關聯的登入將被對映到 guest 使用者。相反,如果存在資料庫使用者,但沒有與其關聯的登入,則該使用者將無法登入到 sql server 伺服器中。

將資料庫恢復到其他伺服器時,資料庫中包含一組使用者和許可權,但可能沒有相應的登入或者登入所關聯的使用者可能不是相同的使用者。這種情況被稱為存在「孤立使用者」。

孤立使用者疑難解答

當您將資料庫備份恢復到另一台伺服器時,可能會遇到孤立使用者的問題。以下情形說明了該問題並闡述如何加以解決。 1. 向主資料庫新增乙個登入,並將預設資料庫指定為 northwind: use master go sp_addlogin 'test', 'password', 'northwind'

2. 向剛建立的使用者授予訪問許可權: use northwind go sp_grantdbaccess 'test'

3. 備份資料庫。 backup database northwind

to disk = 'c:\mssql\backup\northwind.bak'

4. 將資料庫恢復到其他 sql server 伺服器: restore database northwind

from disk = 'c:\mssql\backup\northwind.bak'

恢復的資料庫包含名為「test」的使用者,但沒有相應的登入,這就導致「test」成為孤立使用者。

5. 現在,為了檢測孤立使用者,請執行此**: use northwind go sp_change_users_login 'report'

輸出中列出了所有登入,其中包含 northwind 資料庫的 sysusers 系統表和主資料庫的 sysxlogins 系統表中不匹配的條目。

解決孤立使用者問題的步驟

1. 為前一步中的孤立使用者執行以下命令:

use northwind

gosp_change_users_login 'update_one', 'test', 'test'

這樣,就將伺服器登入「test」與 northwind 資料庫使用者「test」重新連線起來。sp_change_users_login 儲存過程還可以使用「auto_fix」引數對所有孤立使用者執行更新,但不推薦這樣做,因為 sql server 會嘗試按名稱匹配登入和使用者。大多數情況下這都是可行的;但是,如果使用者與錯誤登入關聯,該使用者可能擁有錯誤的許可權。

gosp_password null, 'ok', 'test'

此儲存過程不能用於 microsoft windows nt 安全帳戶。通過 windows nt 網路帳戶連線到 sql server 伺服器的使用者是由 windows nt 授權的;因此,這些使用者只能在 windows nt 中更改密碼。

只有 sysadmin 角色的成員可以更改其他使用者的登入密碼。

參考240872 inf:在 sql 伺服器之間移動資料庫時如何解決許可權問題

SQL SERVER 孤立使用者

sql server使用者管理分為兩層,例項級的login和資料庫級的使用者 login的sid和資料庫使用者的sid必須一樣才行 資料庫搬遷login在重建時生成新的sid,與原來資料庫的使用者sid對應不上所以就成了孤立使用者 每個login有唯一的sid,域賬號為域裡的sid select f...

sql孤立使用者解決方法

如圖,無登入名,所屬為孤立帳戶 其表現可以為 同名在安全性中存在,但是沒存在對某庫的訪問許可權 訪庫安全性中有使用者名稱,為上圖所示。孤立帳戶,就是某個資料庫的帳戶只有使用者名稱而沒有登入名,這樣的使用者在使用者庫的sysusers系統表中存在,而在master資料庫的syslogins中卻沒有對應...

SQL Server 孤立使用者詳解

sql server 的使用者安全管理分兩層,整個sql server 伺服器一層,每個資料庫一層。登入帳號對於伺服器而言的,資料庫使用者是針對特定資料庫來講的。就相當於乙個房間裡放著很多保險櫃,你有房門鑰匙了,必須得有每個保險櫃的鑰匙才能從保險櫃裡取東西。登入帳戶是房門鑰匙,資料庫使用者是保險櫃鑰...