Sql-Server

無法從 SQL SERVER 2012 中刪除域登錄

  • March 3, 2017

我們正在嘗試清理我們的 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;

引用自:https://dba.stackexchange.com/questions/166140