在ms sql2005 下面刪除一個(gè)數(shù)據(jù)庫(kù)的用戶(hù)的時(shí)候提示 "數(shù)據(jù)庫(kù)主體在該數(shù)據(jù)庫(kù)中擁有架構(gòu),無(wú)法刪除" 的錯(cuò)誤解決方案
1、在 安全性 -> 架構(gòu) 下面看有沒(méi)有該用戶(hù)存在,如果有就刪除
再試試在用戶(hù)下面看能不能把該用戶(hù)刪掉,如果不行就用下面的文法
運(yùn)行下SQL語(yǔ)句
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
--然后手動(dòng)刪除就可以了。
因?yàn)檫x定的用戶(hù)擁有對(duì)象,所以無(wú)法除去該用戶(hù)"解決方法
復(fù)制代碼 代碼如下:
use 你的庫(kù)名
go
declare tb cursor local
for
select 'sp_changeobjectowner '
+quotename(
+quotename(user_name(uid))
+'.'+quotename(name),'''')
+',''dbo'''
from sysobjects
where objectproperty(id,N'isusertable')=1
and uid>user_id('dbo')
declare @s nvarchar(4000)
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
第三
方法一(華夏互聯(lián)專(zhuān)業(yè)技術(shù)提示:因?yàn)樯婕案臄?shù)據(jù)庫(kù)存儲(chǔ)過(guò)程,強(qiáng)制刪除法不推薦)
首先你需要做的第一件事
企業(yè)管理器-〉選擇服務(wù)器-〉屬性-〉服務(wù)器設(shè)置-〉挑上允許對(duì)系統(tǒng)目錄。。。-〉確定
第二步
找到你的數(shù)據(jù)庫(kù)找到sysusers表那你以前的用戶(hù)刪除
第三步回去吧屬***值改回來(lái)
第四部重建用戶(hù)即可
方法二
對(duì)mssql出現(xiàn)選定的用戶(hù)擁有對(duì)象而無(wú)法刪除的處理
--將下面的代碼在查詢(xún)分析器中執(zhí)行,修改修改庫(kù)名
復(fù)制代碼 代碼如下:
use 你的庫(kù)名
go
declare tb cursor local
for
select 'sp_changeobjectowner '
+quotename(
+quotename(user_name(uid))
+'.'+quotename(name),'''')
+',''dbo'''
from sysobjects
where objectproperty(id,N'isusertable')=1
and uid>user_id('dbo')
declare @s nvarchar(4000)
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
MSSQL備份移植到另一服務(wù)器還原時(shí)容易遇到的問(wèn)題……
MSSQL備份移植到另一服務(wù)器還原時(shí)容易遇到的問(wèn)題,尤其是從虛擬主機(jī)備份回來(lái)的數(shù)據(jù)庫(kù)在本機(jī)還原的問(wèn)題…
會(huì)出現(xiàn)用SQL原來(lái)的用戶(hù)名和密碼無(wú)效的情況
無(wú)法刪除某一個(gè)系統(tǒng)表
用sa連接做Select時(shí)提示表名無(wú)效
無(wú)法刪除原備份數(shù)據(jù)庫(kù)中的用戶(hù)名,提示“因?yàn)檫x定的用戶(hù)擁有對(duì)象,所以無(wú)法除去該用戶(hù)?!?br />
主要原因是原來(lái)的備份還原時(shí)保留了原用戶(hù)的信息,導(dǎo)致產(chǎn)生孤立用戶(hù)……
這時(shí)候需要用sp_changeobjectowner 將對(duì)象的所有關(guān)系更改到另一個(gè)用戶(hù)上,既更改數(shù)據(jù)庫(kù)對(duì)象的所有者。
格式:
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
例子 在查詢(xún)分析器中錄入:
sp_changeobjectowner 'web102101.tablename', 'dbo'
依次將所有的所屬用戶(hù)都改為dbo,然后現(xiàn)在數(shù)據(jù)庫(kù)的用戶(hù)中把孤立用戶(hù)刪除,再到安全中刪除登陸信息。
并可以再依次創(chuàng)建新用戶(hù)了
下面是一些補(bǔ)充:
Microsoft SQL Server錯(cuò)誤: 15138刪除對(duì)于用戶(hù)失敗,數(shù)據(jù)庫(kù)主體在該數(shù)據(jù)庫(kù)中擁有架構(gòu),無(wú)法刪除。解決方法
刪除 對(duì)于 用戶(hù)“*****”失敗。 (Microsoft.SqlServer.Smo)
有關(guān)幫助信息,請(qǐng)單擊: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+ServerProdVer=
9.00.1523.00EvtSrc=Microsoft.SqlServer.Management.Smo.
ExceptionTemplates.FailedOperationExceptionTextEvtID=刪除+UserLinkId=20476
------------------------------
其他信息:
執(zhí)行 Transact-SQL 語(yǔ)句或批處理時(shí)發(fā)生了異常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
數(shù)據(jù)庫(kù)主體在該數(shù)據(jù)庫(kù)中擁有 架構(gòu),無(wú)法刪除。 (Microsoft SQL Server,錯(cuò)誤: 15138)
有關(guān)幫助信息,請(qǐng)單擊: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+ServerProdVer=09.00.1399EvtSrc=MSSQLServerEvtID=15138LinkId=20476
解決方法一
先刪除此用戶(hù)對(duì)應(yīng)的架構(gòu),然后在刪除對(duì)應(yīng)的用戶(hù)
步驟
1。SQL SERVER MANAGEMENT STUDIO--》數(shù)據(jù)庫(kù)--》安全性--》構(gòu)架,先刪除對(duì)應(yīng)的構(gòu)架
2。SQL SERVER MANAGEMENT STUDIO--》數(shù)據(jù)庫(kù)--》安全性--》用戶(hù),刪除對(duì)應(yīng)的用戶(hù)
解決方法二
--執(zhí)行如下SQL語(yǔ)句
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
--然后手動(dòng)刪除就可以了。