如何解決孤立用戶問題
??? 此問題出現(xiàn)在數(shù)據(jù)庫(kù)的移值上。移值后,數(shù)據(jù)庫(kù)的登陸名和數(shù)據(jù)庫(kù)用戶名孤立,原數(shù)據(jù)中,用建立的用戶名密碼登陸可以訪問數(shù)據(jù)庫(kù),但是移值后就不能訪問了。而且如果您嘗試向該登錄帳戶授予數(shù)據(jù)庫(kù)訪問權(quán)限,則會(huì)因該用戶已經(jīng)存在而出現(xiàn)以下錯(cuò)誤信息:?????‘該登錄已經(jīng)在另一個(gè)用戶名下?lián)碛袔簟?br />
?? 產(chǎn)生錯(cuò)誤的原因是:
??????????? 在您向目標(biāo)服務(wù)器傳輸?shù)卿泿艉兔艽a后,您的用戶可能還無法訪問數(shù)據(jù)庫(kù)。登錄帳戶與用戶是靠安全識(shí)別符 ? (SID) ? 關(guān)聯(lián)在一起的;在您移動(dòng)數(shù)據(jù)庫(kù)后,如果 ? SID ? 不一致,SQL ? Server ? 可能會(huì)拒絕用戶訪問數(shù)據(jù)庫(kù)。此問題稱為孤立用戶。如果您使用? SQL ? Server ? 2000 ? DTS ? 傳輸?shù)卿浌δ軄韨鬏數(shù)卿泿艉兔艽a,就可能會(huì)產(chǎn)生孤立用戶。此外,被允許訪問與源服務(wù)器處于不同域中的目標(biāo)服務(wù)器的集成登錄帳戶,也會(huì)導(dǎo)致出現(xiàn)孤立用戶。?
?? 以下是解決辦法:
??????????? 1.查找孤立用戶。在目標(biāo)服務(wù)器上打開查詢分析器,然后在您移動(dòng)的用戶數(shù)據(jù)庫(kù)中運(yùn)行以下代碼:?? exec ? sp_change_users_login ? 'Report'?,?查找到后執(zhí)行
??????????? 2.如果一個(gè)用戶是孤立用戶,數(shù)據(jù)庫(kù)用戶可以成功登錄到服務(wù)器,但卻無權(quán)訪問數(shù)據(jù)庫(kù)。如果您嘗試向該登錄帳戶授予數(shù)據(jù)庫(kù)訪問權(quán)限,則會(huì)因該用戶已經(jīng)存在而出現(xiàn)以下錯(cuò)誤信息:?????
??
?? 產(chǎn)生錯(cuò)誤的原因是:
??????????? 在您向目標(biāo)服務(wù)器傳輸?shù)卿泿艉兔艽a后,您的用戶可能還無法訪問數(shù)據(jù)庫(kù)。登錄帳戶與用戶是靠安全識(shí)別符 ? (SID) ? 關(guān)聯(lián)在一起的;在您移動(dòng)數(shù)據(jù)庫(kù)后,如果 ? SID ? 不一致,SQL ? Server ? 可能會(huì)拒絕用戶訪問數(shù)據(jù)庫(kù)。此問題稱為孤立用戶。如果您使用? SQL ? Server ? 2000 ? DTS ? 傳輸?shù)卿浌δ軄韨鬏數(shù)卿泿艉兔艽a,就可能會(huì)產(chǎn)生孤立用戶。此外,被允許訪問與源服務(wù)器處于不同域中的目標(biāo)服務(wù)器的集成登錄帳戶,也會(huì)導(dǎo)致出現(xiàn)孤立用戶。?
?? 以下是解決辦法:
??????????? 1.查找孤立用戶。在目標(biāo)服務(wù)器上打開查詢分析器,然后在您移動(dòng)的用戶數(shù)據(jù)庫(kù)中運(yùn)行以下代碼:?? exec ? sp_change_users_login ? 'Report'?,?查找到后執(zhí)行
Use
?lk96160
go
sp_change_users_login? ' update_one ' ,? ' lk96160 ' ,? ' lk96160 '
一般問題就會(huì)解決。go
sp_change_users_login? ' update_one ' ,? ' lk96160 ' ,? ' lk96160 '
??????????? 2.如果一個(gè)用戶是孤立用戶,數(shù)據(jù)庫(kù)用戶可以成功登錄到服務(wù)器,但卻無權(quán)訪問數(shù)據(jù)庫(kù)。如果您嘗試向該登錄帳戶授予數(shù)據(jù)庫(kù)訪問權(quán)限,則會(huì)因該用戶已經(jīng)存在而出現(xiàn)以下錯(cuò)誤信息:?????
??
Microsoft???SQL
-
DMO???(ODBC???SQLState:
42000
)???Error???
15023
:
User
???
or
???role???
'
%s
'
???already???
exists
???
in
???the???
current
???
database
.
??或是登陸名對(duì)應(yīng)該的用戶改成了dbo,則在sa下執(zhí)行一下以下代碼:
exec
???sp_changedbowner???
'
sa
'
?
然后再執(zhí)行:
Use
?lk96160
go
sp_change_users_login? ' update_one ' ,? ' lk96160 ' ,? ' lk96160 '
一般問題就會(huì)解決了。
go
sp_change_users_login? ' update_one ' ,? ' lk96160 ' ,? ' lk96160 '
posted on 2007-07-31 14:49 freebird 閱讀(1882) 評(píng)論(2) 編輯 收藏 所屬分類: 數(shù)據(jù)庫(kù)