我们正在尝试清理我们的 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。
我怎样才能找出究竟是什么阻止我撤销这些权限,以便我可以删除用户?
谢谢。
检查他们是否拥有端点本身:
如果是这样,您将需要更改端点所有者。假设端点称为镜像,并且您想将所有者更改为 SA: