SQLServer之刪除使用者自定義資料庫使用者
阿新 • • 發佈:2019-01-08
刪除使用者自定義資料庫使用者注意事項
不能從資料庫中刪除擁有安全物件的使用者。 必須先刪除或轉移安全物件的所有權,才能刪除擁有這些安全物件的資料庫使用者。
不能刪除 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