Этот монитор проверяет состояние настройки имени участника-службы экземпляра Microsoft® SQL Server™.
Этот монитор проверяет конфигурацию имени участника-службы (SPN) экземпляра Microsoft® SQL Server™. Это выполняется путем сравнения конфигураций службы SQL Server и контроллера домена.
Имя участника-службы (SPN) для компонента SQL Server Database Engine отсутствует, перемещено или повторяется с другим именем участника-службы, настроенным в Active Directory домена.
Примечание. Перемещенное имя участника-службы — это имя участника-службы, настроенное для неправильно указанной учетной записи в Active directory.
Для устранения этой проблемы можно воспользоваться программами setspn.exe и klist.exe.
Обе эти программы поставляются в Windows Server 2008 и более поздних версиях. Для предыдущих версий Windows можно загрузить их отдельно в Центре загрузки Майкрософт или получить из пакета средств поддержки Windows.
Случай 1. Разрешение проблемы при отсутствии имени участника-службы.
1. Выполните следующую команду для добавления отсутствующего имени участника-службы:
setspn –A <SPN> <учетная_запись>
2. Выполните повторное подключение к SQL Server из клиентского приложения.
Кроме того, можно предоставить необходимые разрешения учетной записи службы SQL, чтобы разрешить SQL автоматически формировать нужные имена участников-служб.
Примечание. Отсутствующее имя участника-службы не может привести к ошибке обмена данными, но не дает приложению использовать проверку подлинности Kerberos.
Случай 2. Разрешение проблемы при перемещенном имени участника-службы.
1. Выполните следующую команду, чтобы удалить перемещенное имя участника-службы:
setspn –D <SPN> <учетная_запись>
2. На клиентском компьютере либо выйдите из системы и войдите в нее снова, либо очистите кэш билетов Kerberos, выполнив следующую команду:
очистка klist
3. Выполните повторное подключение к SQL Server из клиентского приложения.
Примечание. Если требуется использование протокола Kerberos из приложения, необходимо настроить правильное имя участника-службы, используя приведенное выше решение для случая 1.
Случай 3. Разрешение проблемы при повторяющемся имени участника-службы.
1. Определите имена участников-служб, которые имеют дубликаты и должны быть удалены.
2. Выполните следующую команду, чтобы удалить каждое из повторяющихся имен участников-служб:
setspn –D <SPN> <учетная_запись>
3. На клиентском компьютере либо выйдите из системы и войдите в нее снова, либо очистите кэш билетов Kerberos, выполнив следующую команду:
очистка klist
4. Выполните повторное подключение к SQL Server из клиентского приложения.
При неверной настройке имени участников-служб могут возникнуть проблемы с подключением к SQL Server
Target | Microsoft.SQLServer.2008.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.2008.DBEngine.Configuration.SPNStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.DBEngine.Configuration.SPNStatusMonitor" Accessibility="Public" Enabled="true" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBEngine.Configuration.SPNStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.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>