Este monitor comprueba el estado de la configuración de nombre principal de servicio de la instancia de Microsoft SQL Server.
Este monitor comprueba la configuración de nombre de entidad de seguridad de servicio (SPN) de la instancia de Microsoft SQL Server. Para ello se comparan las configuraciones del servicio SQL Server y del controlador de dominio.
Un nombre principal de servicio (SPN) para el motor de base de datos de SQL Server puede faltar, estar ubicado incorrectamente o estar duplicado en otros SPN configurados en Active Directory del dominio.
Nota: un SPN ubicado incorrectamente es un SPN configurado en una cuenta incorrecta en Active Directory.
Los programas setspn.exe y klist.exe se pueden usar para solucionar el problema.
Ambas herramientas se incluyen con Windows Server 2008 y versiones posteriores. Para las versiones anteriores de Windows, puede ser necesario descargarlas por separado desde el Centro de descarga de Microsoft u obtenerlas del paquete de herramientas de soporte técnico de Windows.
Caso 1: Cómo resolver un SPN que falta:
1. Ejecute el comando siguiente para agregar el SPN que falta:
setspn –A <SPN> <Cuenta>
2. Intente volver a conectarse a SQL Server con la aplicación cliente.
Como alternativa, puede proporcionar los permisos adecuados a la cuenta de servicio de SQL para permitir que SQL genere automáticamente los SPN necesarios.
Nota: un SPN que falta puede no dar lugar a un error de conexión, pero impedirá que la aplicación utilice la autenticación Kerberos.
Caso 2: Cómo resolver un SPN ubicado incorrectamente:
1. Ejecute el siguiente comando para quitar el SPN ubicado incorrectamente:
setspn –D <SPN> <Cuenta>
2. En el equipo cliente, cierre la sesión y vuelva a iniciarla o desactive la caché del vale de Kerberos mediante el comando siguiente:
klist purge
3. Intente volver a conectarse a SQL Server con la aplicación cliente.
Nota: si desea usar Kerberos desde la aplicación, debe configurar el SPN correcto usando la solución del caso 1 anterior.
Caso 3: Cómo resolver un SPN duplicado:
1. Identifique los SPN que están duplicados y se deberían quitar.
2. Ejecute el siguiente comando para quitar cada uno de los SPN duplicados:
setspn –D <SPN> <Cuenta>
3. En el equipo cliente, cierre la sesión y vuelva a iniciarla o desactive la caché del vale de Kerberos mediante el comando siguiente:
klist purge
4. Intente volver a conectarse a SQL Server con la aplicación cliente.
Nombre | Descripción | Valor predeterminado |
Habilitado |
| Sí |
Genera alertas |
| Sí |
Intervalo (segundos) | Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo. | 900 |
Hora de sincronización | Hora de sincronización especificada en un formato de 24 horas. Se puede omitir. |
|
Tiempo de espera (segundos) | Especifica el tiempo durante el que se puede ejecutar el flujo de trabajo antes de que se cierre y se marque como error. | 300 |
Ámbito de búsqueda | Use la búsqueda LDAP cuando el ámbito de una búsqueda sea el dominio o una unidad organizativa. Cuando el ámbito de una búsqueda sea el bosque, la consulta se puede resolver dentro de cualquier partición mediante una búsqueda en un Catálogo global (GC). Lista de valores: LDAP GC | LDAP |
Target | Microsoft.SQLServer.2014.DBEngine | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2014.DBEngine.Configuration.SPNStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2014.DBEngine.Configuration.SPNStatusMonitor" Accessibility="Public" Enabled="true" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.DBEngine.Configuration.SPNStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.DBEngine.Configuration.SPNStatusMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/Account$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='MissingSpnList']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='MisplacedSpnList']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='DuplicateSpnList']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Good" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="Bad" MonitorTypeStateID="Bad" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ComputerNetworkName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerNetworkName>
<NetbiosComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</InstanceName>
<Account>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/Account$</Account>
<ServiceName>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</ServiceName>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
<SearchScope>LDAP</SearchScope>
</Configuration>
</UnitMonitor>