Este monitor verifica o status da configuração do Nome da Entidade de Serviço da instância do Microsoft® SQL Server™.
Este monitor verifica a configuração do SPN (nome da entidade de serviço) da instância do Microsoft® SQL Server™. Isso é feito com a comparação das configurações de serviço do SQL Server e do controlador de domínio.
Note that the monitor is always in "Healthy" state for non-domain joined machines.
Um Nome de Entidade de Serviço (SPN) para o Mecanismo de Banco de Dados SQL Server pode estar faltando, no local errado ou é uma duplicata de outros SPNs configurados no Ative Directory do domínio.
Observação: um SPN no local errado é um SPN configurado na conta incorreta no Active Directory.
Os programas setspn.exe e klist.exe podem ser usados para resolver o problema.
Ambas as ferramentas são fornecidas com o Windows Server 2008 e versões posteriores. Para versões anteriores do Windows, você pode precisar baixá-las separadamente do Centro de Download da Microsoft ou obtê-las do pacote das Ferramentas de Suporte do Windows.
Caso 1: Como resolver um SPN ausente:
1. Execute o seguinte comando para adicionar o SPN ausente:
setspn –A <Conta> <SPN>
2. Tente reconectar-se ao SQL Server com o aplicativo cliente.
Você também pode usar um parâmetro /S ou –A para o comando setspn. Embora o último seja considerado preterido, ainda poderá trabalhar em versões anteriores do Windows Server (2012, 2012 R2).
Observe que, em caso de uso de uma conta virtual (como Sistema Local ou NT Service\MSSQL Server), o valor de <Account> para o comando setspn deve ser apresentado pelo nome de host do computador.
Como alternativa, você pode fornecer as permissões adequadas para a Conta de Serviço do SQL para permitir que o SQL gere automaticamente os SPNs necessários.
Observação: um SPN ausente pode não resultar em uma falha de conectividade, mas impedirá que o aplicativo use a autenticação Kerberos.
Caso 2: como resolver um SPN no local incorreto:
1. Execute o seguinte comando para remover o SPN do local errado:
setspn –D <Conta> <SPN>
2. No computador cliente, faça logoff e logon novamente ou limpe o cache de tíquete Kerberos executando o seguinte comando:
limpar klist
3. Tente reconectar-se ao SQL Server com o aplicativo cliente.
Observação: se você quiser usar Kerberos do seu aplicativo, deverá configurar o SPN correto usando a resolução do Caso 1 acima.
Caso 3: como resolver um SPN duplicado:
1. Identifique os SPNs que estão duplicados e devem ser removidos.
2. Execute o seguinte comando para remover cada um dos SPNs duplicados:
setspn –D <Conta> <SPN>
3. No computador cliente, faça logoff e logon novamente ou limpe o cache de tíquete Kerberos executando o seguinte comando:
limpar klist
4. Tente reconectar-se ao SQL Server com o aplicativo cliente.
Nome | Descrição | Valor Padrão |
Prioridade do Alerta | Define a Prioridade do Alerta. | Normal |
Severidade do Alerta | Define a Severidade do Alerta. | Aviso |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Sim |
Gerar Alertas | Define se o fluxo de trabalho gera um Alerta. | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho. | 900 |
Escopo da pesquisa | Use a pesquisa LDAP quando o escopo de uma pesquisa for o domínio ou uma unidade organizacional. Quando o escopo de uma pesquisa é a floresta, a consulta pode ser resolvida dentro de qualquer partição usando uma pesquisa de Catálogo Global (GC). Lista de valores: LDAP GC | LDAP |
Hora da Sincronização | O tempo de sincronização especificado usando um formato de 24 horas. Pode ser omitido. |
|
Tempo limite (segundos) | Especifica o tempo durante o qual o fluxo de trabalho pode ser executado antes de ser fechado e marcado como com falha. | 300 |
Target | Microsoft.SQLServer.2012.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.2012.DBEngine.Configuration.SPNStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2012.DBEngine.Configuration.SPNStatusMonitor" Accessibility="Public" Enabled="true" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.DBEngine.Configuration.SPNStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.DBEngine.Configuration.SPNStatusMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.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="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</InstanceName>
<Account>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/Account$</Account>
<ServiceName>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</ServiceName>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
<SearchScope>LDAP</SearchScope>
</Configuration>
</UnitMonitor>