sql2000新建登陸用戶錯誤“21002:[SQL-DMO] 用戶***已經存在”的原因和解決方法【孤立用戶解決方法】

錯誤症狀:   

      在SQL Server200中用附加數據庫導入數據後,在新建登錄時出現會出現錯誤21002:[SQL-DMO] 用戶***已經存在。然後發現沒建成的用戶已經在登錄列表裏了。刪除重建,問題依然是一樣的。

 

 

 

 

產生原因:
        這就是我們通常所說的“
孤立用戶”,所謂孤立帳戶,就是某個數據庫的帳戶只有用戶名而沒有登錄名,這樣的用戶在用戶庫的sysusers系統表中存在,而在master數據庫的syslogins中卻沒有對應的記錄。

孤立帳戶的產生一般由於以下兩種情況造成:
1.將備份的數據庫在其它機器上還原;
2.重裝系統或SQL SERVER之後只還原了用戶庫


解決方法:
方法一:
SQL Server2000企業管理器-> 數據庫-> 展開所在問題的數據庫-> 用戶-> 在右側的窗口中選擇出問題的用戶名-> 右擊->刪除。
然後在企業管理器-> 安全性-> 登錄-> 在右側窗口中選擇出問題的用戶名-> 右擊 屬性-> 數據庫訪問// 選點要的數據庫 *** -> 溝選下方 *** 的數據庫角色 public 和 db_owner 完成!

方法二:
解決方法是使用sp_change_users_login來修復。sp_change_users_login的用法有三步:
步驟1:
exec sp_change_users_login 'REPORT'
列出當前數據庫的孤立用戶
步驟2:
exec sp_change_users_login 'AUTO_FIX','用戶名'
可以自動將用戶
名所對應的同名登錄添加到syslogins中
步驟3:
exec sp_change_users_login 'UPDATE_ONE','用戶名','登錄名'
將用戶名映射爲指定的登錄名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章