程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> MSSQL中刪除用戶時數據庫主體在該數據庫存中擁有架構 無法刪除的解決方法

MSSQL中刪除用戶時數據庫主體在該數據庫存中擁有架構 無法刪除的解決方法

編輯:關於SqlServer

在ms sql2005 下面刪除一個數據庫的用戶的時候提示 "數據庫主體在該數據庫中擁有架構,無法刪除" 的錯誤解決方案
1、在 安全性 -> 架構 下面看有沒有該用戶存在,如果有就刪除
再試試在用戶下面看能不能把該用戶刪掉,如果不行就用下面的文法
運行下SQL語句
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;

--然後手動刪除就可以了。
因為選定的用戶擁有對象,所以無法除去該用戶"解決方法

復制代碼 代碼如下:
use 你的庫名
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

第三

方法一(華夏互聯專業技術提示:因為涉及更改數據庫存儲過程,強制刪除法不推薦)
首先你需要做的第一件事
企業管理器-〉選擇服務器-〉屬性-〉服務器設置-〉挑上允許對系統目錄。。。-〉確定
第二步
找到你的數據庫找到sysusers表那你以前的用戶刪除
第三步回去吧屬***值改回來
第四部重建用戶即可

方法二

對mssql出現選定的用戶擁有對象而無法刪除的處理

--將下面的代碼在查詢分析器中執行,修改修改庫名

復制代碼 代碼如下:
use 你的庫名
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備份移植到另一服務器還原時容易遇到的問題……
MSSQL備份移植到另一服務器還原時容易遇到的問題,尤其是從虛擬主機備份回來的數據庫在本機還原的問題…

會出現用SQL原來的用戶名和密碼無效的情況
無法刪除某一個系統表
用sa連接做Select時提示表名無效
無法刪除原備份數據庫中的用戶名,提示“因為選定的用戶擁有對象,所以無法除去該用戶。”
主要原因是原來的備份還原時保留了原用戶的信息,導致產生孤立用戶……

這時候需要用sp_changeobjectowner 將對象的所有關系更改到另一個用戶上,既更改數據庫對象的所有者。

格式:

sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'

例子 在查詢分析器中錄入:

sp_changeobjectowner 'web102101.tablename', 'dbo'
依次將所有的所屬用戶都改為dbo,然後現在數據庫的用戶中把孤立用戶刪除,再到安全中刪除登陸信息。

並可以再依次創建新用戶了

下面是一些補充:

Microsoft SQL Server錯誤: 15138刪除對於用戶失敗,數據庫主體在該數據庫中擁有架構,無法刪除。解決方法
刪除 對於 用戶“*****”失敗。 (Microsoft.SqlServer.Smo)

有關幫助信息,請單擊: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=

9.00.1523.00&EvtSrc=Microsoft.SqlServer.Management.Smo.

ExceptionTemplates.FailedOperationExceptionText&EvtID=刪除+User&LinkId=20476

------------------------------
其他信息:

執行 Transact-SQL 語句或批處理時發生了異常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

數據庫主體在該數據庫中擁有 架構,無法刪除。 (Microsoft SQL Server,錯誤: 15138)

有關幫助信息,請單擊: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.1399&EvtSrc=MSSQLServer&EvtID=15138&LinkId=20476



解決方法一

先刪除此用戶對應的架構,然後在刪除對應的用戶
步驟
1。SQL SERVER MANAGEMENT STUDIO--》數據庫--》安全性--》構架,先刪除對應的構架
2。SQL SERVER MANAGEMENT STUDIO--》數據庫--》安全性--》用戶,刪除對應的用戶

解決方法二


--執行如下SQL語句

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
--然後手動刪除就可以了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved