Estamos tentando limpar algumas contas antigas em um de nossos clusters AlwaysOn.
Esta conta em particular se recusa a ser legal e se permite ser excluída.
USE [master]
GO
DROP LOGIN [PROD\dba007]
GO
Erro:
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.
A permissão que está reclamando é uma permissão de conexão com o 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
Agora, a próxima coisa lógica seria revogar as permissões de conexão.
USE master;
REVOKE CONNECT ON ENDPOINT ::HADR_endpoint from [PROD\dba007]
Mas isso produz a mensagem
Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.
A única função de servidor da qual é membro é PUBLIC.
Como posso descobrir o que exatamente está me impedindo de revogar essas permissões para que eu possa descartar o usuário?
Obrigado.
Verifique se eles possuem o próprio endpoint:
Nesse caso, você precisará alterar o proprietário do endpoint. Digamos que o endpoint seja chamado Mirroring e você queira alterar o proprietário para SA: