SQLServer錯(cuò)誤:15023(創(chuàng)建對(duì)于用戶失?。數(shù)據(jù)庫(kù)恢復(fù)到其他服務(wù)器
背景: 最近在遷移SQLServer數(shù)據(jù)庫(kù)2019時(shí),新建用戶成功后,做用戶映射失敗。 SQLServer 報(bào)錯(cuò):用戶、組或角色'XXX' 在當(dāng)前數(shù)據(jù)庫(kù)中已存在. 錯(cuò)誤:15023.
下面講一下解決的方法。
分析:
SQL Server中“登錄”與“用戶”的區(qū)別,“登錄”用于用戶身份驗(yàn)證,而數(shù)據(jù)庫(kù)“用戶”帳戶用于數(shù)據(jù)庫(kù)訪問和權(quán)限驗(yàn)證。登錄通過安全識(shí)別符 (SID) 與用戶關(guān)聯(lián)。
將數(shù)據(jù)庫(kù)恢復(fù)到其他服務(wù)器時(shí),數(shù)據(jù)庫(kù)中包含一組用戶和權(quán)限,但可能沒有相應(yīng)的登錄或者登錄所關(guān)聯(lián)的用戶可能不是相同的用戶。這種情況被稱為存在“孤立用戶”。
此時(shí)是不能通過新建登錄或者是對(duì)同名登錄授予對(duì)應(yīng)數(shù)據(jù)庫(kù)的“用戶”權(quán)限來解決登錄問題,因?yàn)镾QL Server會(huì)報(bào)出“錯(cuò)誤15023:當(dāng)前數(shù)據(jù)庫(kù)中已存在用戶或角色”
簡(jiǎn)單理解:
數(shù)據(jù)庫(kù)備份文件中已經(jīng)包含了用戶test,現(xiàn)在還原了數(shù)據(jù)庫(kù),然后發(fā)現(xiàn)現(xiàn)有數(shù)據(jù)庫(kù)中沒有test這個(gè)用戶,想要新建一個(gè)test用戶,作為該數(shù)據(jù)庫(kù)的owner,便會(huì)出現(xiàn)這個(gè)問題。
可以理解為登錄名和用戶是兩個(gè)不同的概念,雖然名稱相同。在新建登錄名的時(shí)候,如果不添加該數(shù)據(jù)庫(kù)映射則不會(huì)報(bào)錯(cuò)。添加數(shù)據(jù)庫(kù)映射相當(dāng)于給該數(shù)據(jù)庫(kù)添加一個(gè)同名用戶。
但是已經(jīng)存在了test這個(gè)用戶了,所以此時(shí)會(huì)報(bào)錯(cuò)。
解決方法:
可以通過以下方法解決該問題。
1.新建一個(gè)test登錄名,但是不要添加數(shù)據(jù)庫(kù)映射。
2.使用腳本,將孤立用戶test關(guān)聯(lián)到登錄名test上:
Use Northwind Go sp_change_users_login 'update_one', 'test', 'test'
其中Northwind為存在孤立用戶的數(shù)據(jù)庫(kù),update_one是存儲(chǔ)過程的參數(shù),表示只處理一個(gè)用戶,前一個(gè)test是“用戶”,后一個(gè)test是“登錄”,
以上這個(gè)SQL表示將服務(wù)器登錄“test”與 Northwind 數(shù)據(jù)庫(kù)用戶“test”重新連接起來。這樣就可以正常使用數(shù)據(jù)庫(kù)了。
到此這篇關(guān)于SQLServer錯(cuò)誤:15023(創(chuàng)建對(duì)于用戶失?。數(shù)據(jù)庫(kù)恢復(fù)到其他服務(wù)器的文章就介紹到這了,更多相關(guān)SQLServer用戶“xx”的創(chuàng)建失敗(Microsoft.SqlServer.Smo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SqlServer批量備份多個(gè)數(shù)據(jù)庫(kù)且刪除3天前的備份
這篇文章主要介紹了SqlServer批量備份多個(gè)數(shù)據(jù)庫(kù)且刪除3天前的備份,需要的朋友可以參考下2017-09-09SQL Server Bulk Insert 只需要部分字段時(shí)的方法
上午在找Bulk Insert的資料看,還轉(zhuǎn)了一篇。不巧今天下午就用上了,我遇到的需求是導(dǎo)出表A中的N個(gè)字段,然后導(dǎo)入到表B的N個(gè)字段當(dāng)中。2011-10-10SQLServer日志收縮的兩種方法實(shí)現(xiàn)
日志文件撐爆了磁盤,log文件不能再存儲(chǔ)新的transaction log,本文主要介紹了SQLServer日志收縮的兩種方法實(shí)現(xiàn),文中通過圖文示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08詳解partition by和group by對(duì)比
這篇文章主要介紹了詳解partition by和group by對(duì)比,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09sqlserver 動(dòng)態(tài)創(chuàng)建臨時(shí)表的語(yǔ)句分享
開發(fā)業(yè)務(wù)需求,需要對(duì)一個(gè)表作數(shù)據(jù)分析,由于數(shù)據(jù)量較大,而且分析時(shí)字段會(huì)隨條件相應(yīng)變化而變化2012-01-01SQL Server中Check約束的學(xué)習(xí)教程
這篇文章主要介紹了SQL Server中Check約束的學(xué)習(xí)教程,包括對(duì)啟用Check約束來提升性能的介紹,需要的朋友可以參考下2015-12-12MS SQL Server游標(biāo)(CURSOR)的學(xué)習(xí)使用
使用MS SQL Server這樣久,游標(biāo)一直沒有使用過。以前都是使用WHILE循環(huán)加臨時(shí)表來實(shí)現(xiàn)。剛剛聯(lián)系個(gè)示例了解到游標(biāo)概念與語(yǔ)法2014-06-06自增長(zhǎng)鍵列統(tǒng)計(jì)信息的處理方法
在這篇文章展示了SQL Server的查詢優(yōu)化器如何使用自增長(zhǎng)鍵列統(tǒng)計(jì)信息,大家都知道SQLServer里每個(gè)統(tǒng)計(jì)信息對(duì)象都有關(guān)聯(lián)的直方圖直方圖用多個(gè)步長(zhǎng)描述指定列數(shù)據(jù)分布情況,需要的朋友可以參考下2015-07-07