SQLServer2008用戶組或角色'*****'在當前數據庫中已存在問題的解決辦法
在遷移數據庫的過程中SQLServer SDE的問題
爲一個數據庫添加一個用戶時,提示以下信息:
用戶、組或角色 '*****' 在當前數據庫中已存在。 (Microsoft SQLServer, Error: 15023)
問題分析:在遷移測試平臺數據庫的過程中發現,
在兩臺服務器上運行的sql server服務器之間遷移數據庫的之後,
會出現一個在源服務器上可以正常的用戶在目的服務器上無法登錄的情況。
問題解決:
將數據庫恢復到其他服務器時,數據庫中包含一組用戶和權限,
但可能沒有相應的登錄或者登錄所關聯的用戶可能不是相同的用戶。
這種情況被稱爲存在“孤立用戶”。
此時是不能通過新建登錄或者是對同名登錄授予對應數據庫的“用戶”權限來解決登錄問題,
因爲SQLServer會報出“錯誤15023:當前數據庫中已存在用戶或角色”,
爲了解決這個問題,
需要調用系統存儲過程sp_change_users_login,
具體用法如下:
1.打開SQL Server Management Studio,
右鍵選擇“數據庫”>“新建查詢”來新建一個查詢。
輸入以下sql腳本:
//=======================
Use [數據庫名]
go
sp_change_users_login 'update_one', 'AAA', 'AAA'
//========================
接着執行腳本即可。
注:其中update_one是存儲過程的參數,
表示只處理一個用戶,前一個AAA是“用戶”,
後一個AAA是“登錄”,
以上這個SQL表示將服務器登錄“AAA”與數據庫用戶“AAA”重新連接起來。
實例測試案例:
Use sde
go
sp_change_users_login 'update_one','sde','sde'
sp_change_users_login 'update_one', 'AAA', 'AAA'
use cbjyq_flowdb
go
sp_change_users_login 'update_one', 'cbjyq_flowdb', 'cbjyq_flowdb';
use sde
go
sp_change_users_login 'update_one', 'cbjyq_flowdb', 'cbjyq_flowdb';
use cbjyq_flowdb
go
sp_change_users_login 'update_one', 'sde', 'sde';
--the--end!
SQLServer2008用戶組或角色'*****'在當前數據庫中已存在問題的解決辦法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
實現與 Outlook Web Access 的更改密碼功能
lingping
2019-02-23 14:05:54
HOW TO:在圖形用戶介面中查看和轉移 FSMO 角色
lingping
2019-02-23 14:05:54
如何將 .nk2 文件導入至 Outlook 2010
lingping
2019-02-23 14:05:54
bat記錄遠程桌面連接登錄信息
jason1982
2019-02-24 12:57:09
Exchange Server 2010 POP3&IMAP設置詳解
lingping
2019-02-23 14:05:54
虛擬化技術--服務器虛擬化
dawei818
2019-02-23 14:05:39
windows 2008 全新仲裁模式
qyh282110204
2019-02-23 14:05:36
軟路由建立PPPOE服務器
ct19871125
2019-02-23 14:04:24
MySQL性能優化的21個最佳實踐
fdb2b
2019-02-23 14:01:03
centos下簡單實現日誌切割,並上傳至日誌服務器。
隨風上升
2019-02-23 13:59:02
[轉]SMTP&郵件系統常見錯誤代碼
lingping
2019-02-23 14:05:54
tortoisegit push 出錯 沒有生成puttykey
lftong
2019-02-23 14:00:30