Sql-Server
無法從 SQL SERVER 2012 中刪除域登錄
我們正在嘗試清理我們的 AlwaysOn 集群之一上的一些舊帳戶。
這個特定的帳戶拒絕玩得很好,並允許自己被刪除。
USE [master] GO DROP LOGIN [PROD\dba007] GO
錯誤:
Msg 15173, Level 16, State 1, Line 4 Server principal 'PROD\dba007' has granted one or more permission(s). Revoke the permission(s) before dropping the server principal.
它抱怨的權限是對 HADR_ENDPOINT 的連接權限
Select perm.* from sys.server_permissions perm INNER JOIN sys.server_principals prin ON perm.grantor_principal_id = prin.principal_id where prin.name = N'PROD\dba007' class class_desc type permission_name state state_desc 105 ENDPOINT CO CONNECT G GRANT
現在下一個合乎邏輯的事情是撤銷連接權限。
USE master; REVOKE CONNECT ON ENDPOINT ::HADR_endpoint from [PROD\dba007]
但這會產生消息
Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.
它所屬的唯一伺服器角色是 PUBLIC。
我怎樣才能找出究竟是什麼阻止我撤銷這些權限,以便我可以刪除使用者?
謝謝。
檢查他們是否擁有端點本身:
SELECT SUSER_NAME(principal_id) AS endpoint_owner ,name AS endpoint_name FROM sys.database_mirroring_endpoints;
如果是這樣,您將需要更改端點所有者。假設端點稱為鏡像,並且您想將所有者更改為 SA:
ALTER AUTHORIZATION ON ENDPOINT::Mirroring TO sa;