SQLServer之刪除用戶自定義數據庫用戶


刪除用戶自定義數據庫用戶注意事項

不能從數據庫中刪除擁有安全對象的用戶。 必須先刪除或轉移安全對象的所有權,才能刪除擁有這些安全對象的數據庫用戶。

不能刪除 guest 用戶,但可在除 master 或 tempdb 之外的任何數據庫中執行 REVOKE CONNECT FROM GUEST 來撤消它的 CONNECT 權限,從而禁用 guest 用戶。

需要對數據庫具有 ALTER ANY USER 權限。

使用SSMS數據庫管理工具刪除用戶自定義數據庫用戶

1、連接服務器-》展開數據庫-》選擇要刪除用戶的數據庫-》展開數據庫-》展開安全性-》展開用戶-》選擇要刪除的用戶右鍵點擊-》選擇刪除。

2、在刪除對象彈出框-》點擊確定。

3、不需要刷新即可查看刪除結果。

使用T-SQL腳本刪除用戶自定義用戶

語法

--聲明數據庫引用
use database_name;
go

--判斷是否存在用戶自定義用戶,如果存在則刪除。
if exists(select * from sys.database_principals where name=user_name)
--把架構所有者修改回來架構自身
alter authorization on schema::[Architecture_name] to Architecture_name;
--刪除角色擁有的成員
alter role [[Architecture_name] drop member user_name;
--刪除擴展屬性
exec sys.sp_dropextendedproperty @name=N'tests_description', @level0type=N'user',@level0name=N'user_name'
--刪除用戶架構
drop user user_name;
go

語法注釋

--database_name
--數據庫名稱
--user_name
--用戶名稱
--Architecture_name
--架構名稱
--tests_description
--擴展屬性名稱

示例

--聲明數據庫引用
use [testss];
go

--判斷是否存在用戶自定義用戶,如果存在則刪除。
if exists(select * from sys.database_principals where name='test1')
--把架構所有者修改回來架構自身
alter authorization on schema::[db_accessadmin] to db_accessadmin;
--刪除角色擁有的成員
alter role [db_accessadmin] drop member test1;
--刪除擴展屬性
--exec sys.sp_dropextendedproperty @name=N'tests_description', @level0type=N'user',@level0name=N'test1'
--刪除用戶架構
drop user test1;
go

示例結果:使用T-SQL腳本刪除用戶需要刷新用戶文件夾才能查看刪除結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM