SQL Server刪除用戶的步驟
1、sql server MANAGEMENT STUDIO--》數據庫--》安全性--》構架,先刪除對應的構架
2、sql server MANAGEMENT STUDIO--》數據庫--》安全性--》用戶,刪除對應的用戶先刪除此用戶對應的架構,然後再刪除對應的用戶。
上面的方法我無法刪除用戶
SQL Server 2000 無法刪除用戶的解決方法 .
今天在轉移數據的時候就遇到這個問題了,解決方法如下:
把sql數據庫從一個服務器移到另一個服務器上,或者把數據庫備份了以後,重新卸載了sqlserver2000又重新安裝了,之後還原,都可能會遇到這個有關用戶權限的提示"sql2000 因為選定的用戶擁有對象,所以無法除去該用戶",此時,刪除這個用戶又刪除不掉,在安全裡面重新添加吧,又會提示此用戶存在,這該怎麼辦呢?
由於mssql200數據庫的錯誤,我把一個原來的數據庫還原到現在的sql上,此時我來到用戶裡面,想把還原過來的用戶刪除掉,結果卻提示" 因為選定的用戶擁有對象,所以無法除去該用戶 ":
刪除不了,我就准備把系統裡的該用戶添加到這個數據庫上來看看可以不,卻又提示這麼一個錯誤(microsoft sql-dmo 窗口): 錯誤21002:[SQL-DMO]用戶"liuhui"已經存在
因為業務要求,我又不能重新建立一個用戶給它或換一個用戶,該數據庫只能被該用戶使用,標准的規范的服務器格式不能打破,要不會帶來以後維護的超級麻煩,沒辦法求救google 和 baidu ,結果無所不知的他們讓我失望了,沒辦法,只好請求一個經驗豐富的朋友幫忙,問題解決了。
解決方法:
1.打開企業管理器,展開服務器,右鍵點擊本地服器,屬性:
2.選擇常規窗口,將 自動開啟sql server 代理 選上:
3.重復動作1.打開打開sql server 屬性(配置)窗口,選擇 服務器設置窗口:
將 允許對系統目錄直接進行修改 選上,確定
4.展開數據庫,看到數據庫系統表 sysusers ,右鍵--打開表--返回所有行:
5.選擇應為還原而添加進來的用戶,找到相關行,點右鍵 刪除
在返回到用戶列表,去刪除用戶就可以刪除了,再去sql的安全裡面把該數據庫對應的用戶添加上去,測試正常!
最後再返回動作3把選擇勾上的 允許對系統目錄直接進行修改 勾去掉
SQL Server 2005 無法刪除用戶的解決方法 .
一個數據庫,運行在SQL Server 2005下,數據庫用戶無法刪除,在刪除時提示"數據庫主體在該數據庫中擁有架構,無法刪除"。
原因很簡單,就是由於此用戶在數據庫中擁有某些架構的所有權,將相關架構的用戶權限移除或刪除架構即可。
此處以一個用戶UserA為例,說明具體應進行的操作,注意以下方面:
1、數據庫的表、視圖、存儲過程等等,如果架構為UserA,將其所有者全部改為dbo。
2、在"安全性"-"架構"下,如果名稱對象中有UserA這一項,將其直接刪除;如果其它對象的所有者是UserA,將其所有者改為dbo
3、在"安全性"-"角色"-"數據庫角色"下,打開每一個角色的屬性,從"角色列表"中將UserA刪除。
做完這幾步,基本沒有其它問題了,能夠順利地刪除無效的數據庫用戶。
另一種利用代碼方式我們可以適用上面兩種版本的數據庫
對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