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

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

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

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

須要對數據庫具備 ALTER ANY USER 權限。bash

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

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

二、在刪除對象彈出框-》點擊肯定。架構

三、不須要刷新便可查看刪除結果。工具

使用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_nameui

--數據庫名稱spa

--user_namecode

--用戶名稱cdn

--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腳本刪除用戶須要刷新用戶文件夾才能查看刪除結果。

相關文章
相關標籤/搜索