Tjänst-SID
Det här avsnittet beskriver hur du konfigurerar övervakning med hjälp av tjänst-SID för SQL Server på en Windows Server-instans. Dessa steg publicerades först av Kevin Holman i hans blogg. SQL-skripten för att konfigurera åtkomst med lägsta behörighet utvecklades av Brandon Adams.
Utför följande steg för att konfigurera övervakning med hjälp av Service Security Identifier:
Öppna kommandotolken som administratör och kör följande kommando:
sc sidtype HealthService unrestrictedStarta om Hälsotjänst.
Kör kommandot:
sc showsid HealthServiceParametern STATUS ska vara aktiv.

Öppna Registereditorn och kontrollera att Nyckeln ServiceSidType är inställd på 1 vid HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HealthService.
Skapa inloggningen NT SERVICE\HealthService för HealthService SID på varje SQL Server-instans och bevilja den SA-rättigheter.
Om du inte kan bevilja SA-rättigheter använder du följande SQL-skript för att ange den lägsta behörighetskonfigurationen för kontot.
USE [master] SET NOCOUNT ON /*User account that System Center Operations Manager will use to access Default is the Service SID for the HealthService*/ DECLARE @accountname sysname = 'NT SERVICE\HealthService' -- Create the server role and grant permissions CREATE SERVER ROLE [SCOM_HealthService] GRANT VIEW ANY DATABASE TO [SCOM_HealthService]; GRANT ALTER ANY DATABASE TO [SCOM_HealthService]; GRANT VIEW ANY DEFINITION TO [SCOM_HealthService]; GRANT VIEW SERVER STATE TO [SCOM_HealthService] DECLARE @createLoginCommand nvarchar(200) SET @createLoginCommand = ' CREATE LOGIN '+ QUOTENAME(@accountname) + ' FROM WINDOWS WITH DEFAULT_DATABASE=[master];' EXEC(@createLoginCommand); -- Add the login to the user-defined server role EXEC sp_addsrvrolemember @loginame = @accountname , @rolename = 'SCOM_HealthService' DECLARE @createDatabaseUserAndRole nvarchar(max) SET @createDatabaseUserAndRole = ''; SELECT @createDatabaseUserAndRole = @createDatabaseUserAndRole + ' USE ' + QUOTENAME(db.name) + '; CREATE USER ' + QUOTENAME(@accountname) + ' FOR LOGIN ' + QUOTENAME(@accountname) + '; CREATE ROLE [SCOM_HealthService]; EXEC sp_addrolemember @rolename = ''SCOM_HealthService'', @membername = '+ QUOTENAME(@accountname) + '' -- 'ALTER ROLE [SCOM_HealthService] ADD MEMBER ' -- '+ QUOTENAME(@accountname) + ';' FROM sys.databases db LEFT JOIN sys.dm_hadr_availability_replica_states hadrstate ON db.replica_id = hadrstate.replica_id WHERE db.database_id <> 2 AND db.user_access = 0 AND db.state = 0 AND db.is_read_only = 0 AND (hadrstate.role = 1 or hadrstate.role is null); EXEC(@createDatabaseUserAndRole) GO USE [master]; GRANT EXECUTE ON sys.xp_readerrorlog TO [SCOM_HealthService]; GRANT EXECUTE ON sys.xp_instance_regread TO [SCOM_HealthService]; USE [msdb]; GRANT SELECT ON [dbo].[sysjobschedules] TO [SCOM_HealthService]; GRANT SELECT ON [dbo].[sysschedules] TO [SCOM_HealthService]; GRANT SELECT ON [dbo].[sysjobs_view] TO [SCOM_HealthService]; GRANT SELECT ON [dbo].[syscategories] TO [SCOM_HealthService]; GRANT SELECT ON [dbo].[log_shipping_primary_databases] TO [SCOM_HealthService]; GRANT SELECT ON [dbo].[log_shipping_secondary_databases] TO [SCOM_HealthService]; GRANT SELECT ON [dbo].[log_shipping_monitor_history_detail] TO [SCOM_HealthService]; GRANT SELECT ON [dbo].[log_shipping_monitor_secondary] TO [SCOM_HealthService]; GRANT SELECT ON [dbo].[log_shipping_monitor_primary] TO [SCOM_HealthService]; GRANT EXECUTE ON [dbo].[sp_help_job] TO [SCOM_HealthService]; GRANT EXECUTE ON [dbo].[sp_help_jobactivity] TO [SCOM_HealthService]; GRANT EXECUTE ON [dbo].[SQLAGENT_SUSER_SNAME] TO [SCOM_HealthService]; EXEC sp_addrolemember @rolename='SQLAgentReaderRole', @membername='SCOM_HealthService';Om du vill köra SQL Server MP-uppgifter, till exempel Ställ in databasen offline, Ställ in databasen online och Ställ in databasen på nödtillstånd, beviljar du HealthService SID-kontot alter any database-behörigheten.
USE [master] GRANT ALTER ANY DATABASE TO [SCOM_HealthService];Använd kontot "Lokalt system" för att köra Hälsotjänst på SQL Server som finns på en Windows Server-instans.
Kontot NT AUTHORITY\SYSTEM ska finnas som en SQL-inloggning och får inte inaktiveras. Den här inloggningen måste också finnas och aktiverad för klusternoder och AlwaysOn.