如何识别 SQL Server 中的所有超级用户?

Ike*_*nna 2 sql-server permissions sql-server-2012

对于安全审计,我需要识别所有超级用户并记录执行的每个活动。最好的方法是什么?

“超级用户”是指 sysadmin、serveradmin、securityadmin、processadmin 和 dbcreator。

小智 7

您可以使用此代码:

SELECT   name,type_desc,is_disabled, 
         (IS_SRVROLEMEMBER ('sysadmin',name)) AS ISSRVROLE
FROM     master.sys.server_principals 
-- WHERE    IS_SRVROLEMEMBER ('sysadmin',name) = 1
ORDER BY name ;
Run Code Online (Sandbox Code Playgroud)

sys.server_principals - 每个服务器级主体都包含一行

IS_SRVROLEMEMBER - 指示 SQL Server 登录名是否是指定服务器角色的成员。

你还需要检查的sysadmin换算后CONTROL SERVER为服务器中的主体权限sys.server_permissions

IS_SRVROLEMEMBER 可以返回:

  • 0 - 登录不是角色的成员。
  • 1 - 登录是角色的成员。
  • NULL - 角色或登录无效,或者您没有查看角色成员资格的权限。


归档时间:

查看次数:

5433 次

最近记录:

6 年,8 月 前