- 類型:數(shù)據(jù)庫類大。3.1M語言:英文 評分:6.6
- 標簽:
在ms sql2005 下面刪除一個數(shù)據(jù)庫的用戶的時候提示
"數(shù)據(jù)庫主體在該數(shù)據(jù)庫中擁有架構(gòu),無法刪除"
因為選定的用戶擁有對象,所以無法除去該用戶"解決方法
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
第三
方法一(華夏互聯(lián)專業(yè)技術提示:因為涉及更改數(shù)據(jù)庫存儲過程,強制刪除法不推薦)
首先你需要做的第一件事
企業(yè)管理器-〉選擇服務器-〉屬性-〉服務器設置-〉挑上允許對系統(tǒng)目錄。。。-〉確定
第二步
找到你的數(shù)據(jù)庫找到sysusers表那你以前的用戶刪除
第三步回去吧屬***值改回來
第四部重建用戶即可
方法二
對mssql出現(xiàn)選定的用戶擁有對象而無法刪除的處理
--將下面的代碼在查詢分析器中執(zhí)行,修改修改庫名
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備份移植到另一服務器還原時容易遇到的問題,尤其是從虛擬主機備份回來的數(shù)據(jù)庫在本機還原的問題…
會出現(xiàn)用SQL原來的用戶名和密碼無效的情況
無法刪除某一個系統(tǒng)表
用sa連接做Select時提示表名無效
無法刪除原備份數(shù)據(jù)庫中的用戶名,提示“因為選定的用戶擁有對象,所以無法除去該用戶!
主要原因是原來的備份還原時保留了原用戶的信息,導致產(chǎn)生孤立用戶……
這時候需要用sp_changeobjectowner 將對象的所有關系更改到另一個用戶上,既更改數(shù)據(jù)庫對象的所有者。
格式:
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
例子 在查詢分析器中錄入:
sp_changeobjectowner 'web102101.tablename', 'dbo'
依次將所有的所屬用戶都改為dbo,然后現(xiàn)在數(shù)據(jù)庫的用戶中把孤立用戶刪除,再到安全中刪除登陸信息。
并可以再依次創(chuàng)建新用戶了