刪除用戶自定義資料庫用戶註意事項 不能從資料庫中刪除擁有安全對象的用戶。 必須先刪除或轉移安全對象的所有權,才能刪除擁有這些安全對象的資料庫用戶。 不能刪除 guest 用戶,但可在除 master 或 tempdb 之外的任何資料庫中執行 REVOKE CONNECT FROM GUEST 來撤消 ...
刪除用戶自定義資料庫用戶註意事項
不能從資料庫中刪除擁有安全對象的用戶。 必須先刪除或轉移安全對象的所有權,才能刪除擁有這些安全對象的資料庫用戶。
不能刪除 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