解決資料庫遷移後 出現孤立使用者的辦法!

2021-05-17 19:44:37 字數 1957 閱讀 9978

基本症狀為:

1 刪除使用者時,提示 [sql-dmo] xx已經存在

2 資料庫的所有者不為dbo

症狀雖然術語「登入」和「使用者」經常交換使用,但它們之間有很大的不同。登入用於使用者身份驗證,而資料庫使用者帳戶用於資料庫訪問和許可權驗證。登入通過安全識別 符 (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 northwindto disk = 'c:/mssql/backup/northwind.bak'                        

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

restore database northwindfrom disk = 'c:/mssql/backup/northwind.bak'                        

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

5. 現在,為了檢測孤立使用者,請執行此**:

use northwind go sp_change_users_login 'report'                        

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

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

use northwindgosp_change_users_login 'update_one', 'test', 'test'                        

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

2. 在上一步中執行**後,使用者就可以訪問資料庫了。然後使用者可以使用 sp_password 儲存過程更改密碼:

use master gosp_password null, 'ok', 'test'                        

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

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

SQL SERVER 資料庫遷移孤立使用者的解決方法

如果用附加或者恢復備份的方法把資料庫從乙個電腦移動到另外乙個電腦,資料庫的使用者和sql的登入會衝突,登入沒有辦法和使用者關聯,造成孤立使用者.為了解決這個問題,首先在目標sql系統上建立與使用者同名的登入,然後在資料庫上執行下面指令把使用者和登入關聯 use 資料庫 sp change users...

SQL Server 資料庫遷移孤立使用者的解決方法

如果用附加或者恢復備份的方法把資料庫從乙個電腦移動到另外乙個電腦,資料庫的使用者和sql的登入會衝突,登入沒有辦法和使用者關聯,造成孤立使用者.為了解決這個問題,首先在目標sql系統上建立與使用者同名的登入,然後在資料庫上執行下面指令把使用者和登入關聯 use 資料庫 sp change users...

SQL Server資料庫中還原孤立使用者的方法集合

雖然sql server現在搬遷的技術越來越多,自帶的方法也越來越高階。但是我們的sql server在搬遷的會出現很多孤立使用者,微軟沒有自動的處理。因為我們的資料庫許可權表都不會在應用資料庫中,但是每次對資料庫作遷移的時候,單個資料庫卻帶著它的資料庫使用者物件。並且我們在新的資料庫機器上也不能登...