This monitor checks to see if the NT SERVICE\Healthservice exists as a login on the SQL server AND has the System Administrator role to the SQL instance. This monitor should be enabled if you plan to grant sysadmin for the HealthService for monitoring.
This monitor uses the System.OleDbProbe and runs the query: select count(*) from syslogins where sysadmin = 1 AND Name = 'NT SERVICE\HealthService'
The expected value is "1"
You need to grant SysAdmin role permissions to the NT SERVICE\HealthService, or disable this monitor.
https://blogs.technet.microsoft.com/kevinholman/2016/04/26/sql-mp-run-as-accounts-no-longer-required/
Target | Microsoft.SQLServer.2012.DBEngine |
Parent Monitor | System.Health.ConfigurationState |
Category | Custom |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | False |
Monitor Type | Microsoft.SQLServer.RunAs.2012.Addendum.OLEDB.CheckForSysadmin.MonitorType |
Remotable | True |
Accessibility | Public |
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.RunAs.2012.Addendum.OLEDB.CheckForSysadmin.Monitor" Accessibility="Public" Enabled="true" Target="SQL2012Disc!Microsoft.SQLServer.2012.DBEngine" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.RunAs.2012.Addendum.OLEDB.CheckForSysadmin.MonitorType" ConfirmDelivery="false">
<Category>Custom</Category>
<OperationalStates>
<OperationalState ID="OK" MonitorTypeStateID="QueryResultGood" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="QueryResultBad" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>14453</IntervalSeconds>
<ConnectionString>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
</Configuration>
</UnitMonitor>