Sql-Server

執行 sp_Blitz 所需的最低權限

  • October 11, 2017

我需要執行sp_BlitzGlenn Berry 的 Dr DMV 為 SQL 2016 設置的一堆 DMV 查詢sp_Blitz。BrentOzar.com 上的文件指出“系統管理員權限。sp_Blitz® 檢查大量系統級診斷數據。”

sysadmin 真的是最低要求的權限級別,還是有人能夠以更嚴格的權限級別執行它?

不確定我是否會在客戶端的生產伺服器上請求系統管理員權限。

是的,它需要 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

然後,每當您更新 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

希望這可以幫助!

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