运行 sp_Blitz 所需的最低权限

SQL*_*nda 6 security sql-server sql-server-2016 sp-blitz

我需要运行sp_BlitzGlenn Berry 的 Dr DMV 并为 SQL 2016 设置一堆 DMV 查询sp_Blitz。BrentOzar.com 上的文档指出“系统管理员权限。sp_Blitz® 检查大量系统级诊断数据。”

sysadmin 真的是所需的最低权限级别还是有人能够以更严格的权限级别运行它?

不确定我是否会在客户端的生产服务器上请求 sysadmin 权限。

Eri*_*ing 10

是的,它需要 sa 权限。但由于它是一个存储过程,您可以通过证书获得权限

请参阅如何向非 DBA 授予权限部分

USE master;
GO
CREATE CERTIFICATE sp_BlitzFirst_cert
ENCRYPTION BY PASSWORD = '5OClockSomewhere'
WITH SUBJECT = 'Certificate for sp_BlitzFirst',
START_DATE = '20130711', EXPIRY_DATE = '21000101';
GO
CREATE LOGIN sp_BlitzFirst_login FROM CERTIFICATE sp_BlitzFirst_cert;
GO
CREATE USER sp_BlitzFirst_login FROM CERTIFICATE sp_BlitzFirst_cert;
GO
GRANT EXECUTE ON dbo.sp_BlitzFirst TO sp_BlitzFirst_login;
GO
GRANT CONTROL SERVER TO sp_BlitzFirst_login;
GO
ADD SIGNATURE TO sp_BlitzFirst BY CERTIFICATE sp_BlitzFirst_cert
WITH PASSWORD = '5OClockSomewhere';
GO
GRANT EXECUTE ON dbo.sp_BlitzFirst TO [public];
GO
Run Code Online (Sandbox Code Playgroud)

然后,无论何时更新 proc,您都需要通过再次添加签名来重新分配权限:

ADD SIGNATURE TO sp_BlitzFirst BY CERTIFICATE sp_BlitzFirst_cert
WITH PASSWORD = 'Get lucky';
GO
GRANT EXECUTE ON dbo.sp_BlitzFirst TO [public];
GO
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!