sql2005 用戶、組或角色 在當前數據庫中已存在情況描述:sql server數據庫從一臺機轉移到另一臺機時,登錄名沒轉移。這種情況將會產生“孤立用戶”(孤立用戶定義:將數據庫恢復到其它服務器時,數據庫中包含一組用戶和權限,但可能沒有相應的登錄或者登錄所關聯的用戶),此時是不能通過新建登錄或者對同名登錄授予對應數據庫用戶權限來解決下面問題。
報錯信息:用戶、組或角色 'XX' 在當前數據庫中已存在。(Microsoft SQL Server,錯誤:15023)
解決辦法(下面以test數據庫為例,登錄名為ReadData):
use test
go
sp_change_users_login 'update_one','ReadData','ReadData'
說明:test為數據庫名,update_one為存儲過程的參數(表示只處理一個用戶),前一個ReadData為“用戶”,后一個ReadData為“登錄”,(sql server中的“登錄”與“用戶”的區別,“登錄”用于用戶身份驗證,而"用戶"賬戶用于數據庫訪問和權限驗證。登錄通過安全識別符(SID) 與用戶關聯),以上這個sql語句使得用ReadData登錄數據庫并與test數據庫的用戶“ReadData”重新連接,這樣用ReadData登錄就可以正常操作數據庫了。