Panoramica di Kerberos Configuration Manager per SQL Server
Si applica a: SQL Server
Numero KB originale: 2985455
Una configurazione Kerberos non corretta nella rete può causare vari errori di connettività in Microsoft SQL Server. Gestione configurazione Kerberos per SQL Server è uno strumento di diagnostica che consente di risolvere i problemi di connettività correlati a Kerberos che interessano SQL Server, SQL Server Reporting Services (SSRS) e SQL Server Analysis Services (SSAS). Questo articolo fornisce informazioni su come usare lo strumento Kerberos Configuration Manager e su come interpretare l'output dello strumento per risolvere i problemi Kerberos che interessano SQL Server.
Note
Kerberos Configuration Manager viene fornito così come è e non viene offerto alcun supporto tecnico o aggiornamenti. Non è stato aggiornato per l'uso di SQL Server 2022 e versioni successive del provider WMI. Per risolvere e diagnosticare i problemi di configurazione di Kerberos correlati a SQL Server, vedere SQLCheck.
Funzioni di Kerberos Configuration Manager
Kerberos Configuration Manager può eseguire le attività seguenti:
- Raccogliere informazioni sul sistema operativo, sulle istanze di Microsoft SQL Server e sui listener del gruppo di disponibilità AlwaysOn installati in un server.
- Segnalare tutte le configurazioni del nome dell'entità servizio (SPN) e della delega nel server.
- Identificare i potenziali problemi nei nomi SPN e nelle deleghe.
- Risolvere i potenziali problemi relativi al nome SPN.
Scenari di utilizzo
Questo strumento consente di risolvere le eccezioni seguenti:
- 401
Nota: questo messaggio di errore riguarda errori HTTP, errori SSRS e altri errori simili.
- Impossibile generare il contesto SSPI
- Accesso non riuscito per l'utente 'NTAUTHORITY\ANONYMOUS LOGON'
- Accesso non riuscito per l'utente "(null)"
- Accesso non riuscito per l'utente (vuoto)
Note
Prima di iniziare a risolvere i problemi, è consigliabile esaminare i prerequisiti e quindi esaminare l'elenco di controllo generale per risolvere gli errori correlati alla connettività.
Note
Se si dispone dell'accesso amministratore al computer basato su SQL Server, è anche possibile eseguire lo strumento Controllo impostazioni connettività SQL in tale computer e quindi esaminare l'output per controllare la configurazione SPN dell'istanza di SQL Server.
Download dello strumento
Questo strumento è disponibile per il download dall'Area download Microsoft:
Microsoft Kerberos Configuration Manager per SQL Server
Note
È possibile scaricare e installare lo strumento in qualsiasi computer del dominio in grado di connettersi al computer basato su SQL Server.
Autorizzazioni
Per risolvere i problemi di connettività che interessano SQL, SSRS e SSAS, connettersi al computer di destinazione (che ospita il servizio) usando un account utente di dominio con autorizzazioni amministrative per tale computer.
Facoltativo: se si vuole usare lo strumento per risolvere eventuali problemi del nome SPN identificati dallo strumento, l'account di dominio deve disporre dell'autorizzazione Convalidata scrittura nel nome del servizio .
Uso dello strumento
Al termine dell'installazione, avviare il file binario KerberosConfigMgr.exe passando alla cartella di installazione. Per impostazione predefinita, il percorso è C:\Programmi\Microsoft\Kerberos Configuration Manager per SQL Server.
Per informazioni su come avviare un'app come amministratore o un altro utente, vedere Usare Esegui per avviare un'app come amministratore.
Per avviare la risoluzione dei problemi, usare una delle opzioni seguenti:
Per connettersi a un computer remoto basato su SQL Server, immettere i valori appropriati per Nome server, Nome utente di dominio e Password.
Note
Lo strumento Kerberos Configuration Manager usa un'API Windows per eseguire query e visualizzare informazioni sulla configurazione Kerberos per il computer SQL Server. Pertanto, immettere sempre il nome del computer che ospita l'istanza di SQL Server, anche se si stanno risolvendo i problemi correlati a Kerberos per un'istanza denominata.
Per connettersi a un server locale, selezionare Connetti per analizzare la configurazione Kerberos. In questo caso, non è necessario specificare il nome del server, il nome utente del dominio o la password.
Note
L'account che avvia lo strumento deve essere un account amministratore locale. Per informazioni su come avviare un'app come amministratore o un altro utente, vedere Usare Esegui per avviare un'app come amministratore.
Al termine della connessione, tutti i nomi SPN correlati vengono visualizzati nello screenshot seguente.
In questo screenshot l'interfaccia utente include le schede seguenti:
Sistema: visualizza le informazioni utente e le informazioni sul computer.
SPN: visualizza le informazioni sul nome dell'entità servizio (SPN) su ognuna delle istanze di SQL Server trovate nel server di destinazione e fornisce informazioni dettagliate, ad esempio il nome SPN richiesto e il relativo stato.
Genera: consente di trovare nomi SPN mancanti e configurati. Consente inoltre di generare lo script di generazione SPN.
- Selezionare Genera.
- Nella finestra di dialogo visualizzata specificare un nome (in questo caso "generateSPNss"), impostare Salva con nome come file Kerberos Config Mgr(.cmd) e quindi selezionare Salva.
Il file generateSPNss.cmd viene creato ed è possibile eseguire questo file al prompt dei comandi. Il contenuto del file generateSPNss.cmd sarà simile all'esempio seguente:
:: This script is generated by the Microsoft® SQL Server® Kerberos Configuration Manager tool.
:: The script may update the system information, SPN settings and Delegation configurations of a given server.
:: SPN and Delegation configuration updates require Windows Domain Administrator permission to execute.
:: A Domain Admin should review the configurations recommended by this tool and take appropriate actions to enable Kerberos authentication.
:: Please contact Microsoft Support if Kerberos connection problem persists.
:: The file is intended to be run in domain `<DomainName>.com`"
:: Corrections for MSSQLSvc/`<HostName>.<DomainName>.com` **SetSPN -s MSSQLSvc/`<HostName>`. `<DomainName>`.com UserName**
Usare SetSPN per creare un nome SPN nell'account del servizio per SQL Server.
Usare Correzione per risolvere i problemi e aggiungere nomi SPN. È possibile aggiungere un nome SPN solo se si dispone delle autorizzazioni necessarie. Quando si seleziona Correggi, viene visualizzata la descrizione comando seguente:
Note
Lo strumento fornisce i comandi Correggi e Genera solo per le istanze predefinite e le istanze denominate con porte statiche. Per le istanze denominate che usano porte dinamiche, è consigliabile passare da porte dinamiche a statiche o fornire le autorizzazioni necessarie per l'account del servizio per registrare e annullare la registrazione del nome SPN ogni volta che viene avviato il servizio SQL. In caso contrario, è necessario annullare manualmente la registrazione e registrare nuovamente i nomi SPN corrispondenti ogni volta che il servizio viene avviato. Per altre informazioni, vedere Registrare un nome dell'entità servizio per le connessioni Kerberos.
Delega: usare la delega per identificare eventuali problemi che influiscono sulla configurazione dell'account del servizio per la delega. Ciò è particolarmente utile per la risoluzione dei problemi del server collegato. Ad esempio, se il checkout del nome SPN è corretto, ma si verificano ancora problemi che influiscono sulle query del server collegato, ciò potrebbe indicare che l'account del servizio non è configurato per delegare le credenziali. Per altre informazioni, vedere l'argomento della documentazione online di Configurazione dei server collegati per la delega.
Interpretazione e gestione della diagnosi da Kerberos Configuration Manager
Esaminare la diagnosi dallo strumento facendo riferimento alla colonna Stato . In base allo stato, seguire i passaggi appropriati per risolvere il problema.
Stato - Buono
Altre informazioni: l'elemento selezionato è configurato correttamente. Passare all'elemento successivo nell'output.
Azione: non è necessaria alcuna azione.
Stato - SpN obbligatorio mancante
Altre informazioni: questo stato viene segnalato se il nome dell'entità servizio (SPN) indicato nella colonna SPN richiesto non è presente per l'account di avvio di SQL Server in Active Directory.
Azione: seguire questa procedura per verificare se i problemi del nome SPN vengono risolti:
- Selezionare Correzione per esaminare le informazioni nella finestra di dialogo Avviso.
- Selezionare Sì per aggiungere il nome SPN mancante ad Active Directory.
- Se l'account di dominio dispone delle autorizzazioni necessarie per aggiornare Active Directory, il nome SPN necessario verrà aggiunto ad Active Directory.
- Se l'account di dominio non dispone delle autorizzazioni necessarie per aggiornare Active Directory, usare Genera o Genera tutto per generare lo script che consentirà all'amministratore di Active Directory di aggiungere i nomi SPN mancanti.
- Dopo aver aggiunto i nomi SPN, eseguire di nuovo Kerberos Configuration Manager per verificare che i problemi del nome SPN vengano risolti.
Stato: TCP deve essere abilitato per l'uso della configurazione Kerberos.
Altre informazioni: questo stato viene visualizzato se TCP non è abilitato nel computer client.
Azione: seguire questa procedura per abilitare il protocollo TCP/IP per l'istanza di SQL Server:
In Gestione configurazione SQL Server - Console espandere Configurazione di rete di SQL Server.
Nella console selezionare Protocolli per
<instance name>
.In Dettagli selezionare TCP/IP e quindi selezionare Abilita.
Nella console selezionare Servizi SQL Server.
In Dettagli selezionare SQL Server per
<instance name>
.Selezionare Riavvia per arrestare e riavviare il servizio SQL Server. Per altre informazioni, vedere la sezione Abilitare o disabilitare un protocollo di rete del server.
Stato - Porta dinamica
Altre informazioni: questo stato viene visualizzato per le istanze denominate che usano porte dinamiche (configurazione predefinita). Negli ambienti in cui è necessario usare Kerberos per connettersi a SQL Server, è necessario impostare l'istanza denominata per usare una porta statica e usare tale porta quando si registra il nome SPN. In caso contrario, il nome SPN registrato in Active Directory non sarà valido al successivo avvio dell'ascolto di un'istanza denominata su una nuova porta diversa da quella in cui è stato registrato il nome SPN.
Note
Questa raccomandazione si applica solo agli ambienti che dipendono dalla registrazione manuale del nome SPN.
Azione: seguire questa procedura per configurare l'istanza di SQL Server per l'uso di una porta statica:
- In Gestione configurazione SQL Server - Console espandere Configurazione di rete di SQL Server, espandere Protocolli per
<instance name>
e quindi fare doppio clic su TCP/IP. - In Proprietà TCP/IP selezionare Ascolta tutto nel protocollo.
- Se Listen All è impostato su Sì, passare a Indirizzi IP e scorrere fino alla fine della finestra per trovare l'impostazione IPAll .
- Eliminare il valore corrente in Porte dinamiche TCP e immettere un numero di porta nella porta TCP.
- Selezionare OK e quindi riavviare l'istanza di SQL Server. Per maggiori informazioni, consultare Configurare un server per l'ascolto su una porta TCP specifica.
- Se Listen All è impostato su No, passare a Indirizzi IP e controllare ogni indirizzo IP visualizzato nei nodi IP1 e IP2. Per gli indirizzi impostati su Abilitato, rimuovere il valore corrente in Porte dinamiche TCP e quindi impostare un valore in Porta TCP.
- Selezionare OK e quindi riavviare l'istanza di SQL Server per rendere effettive le impostazioni. Per maggiori informazioni, consultare Configurare un server per l'ascolto su una porta TCP specifica.
- In Gestione configurazione SQL Server - Console espandere Configurazione di rete di SQL Server, espandere Protocolli per
Stato - SPN duplicato
Altre informazioni: questo scenario può verificarsi se lo stesso NOME SPN è registrato in account diversi in Active Directory.
Azioni: seguire questa procedura per aggiungere un nome SPN ad Active Directory:
Selezionare Correggi.
Selezionare le informazioni nella finestra di dialogo Avviso .
Selezionare Sì per aggiungere il nome SPN mancante ad Active Directory.
Se l'account di dominio dispone delle autorizzazioni necessarie per aggiornare Active Directory, il nome SPN non corretto verrà eliminato.
Se l'account di dominio non dispone delle autorizzazioni necessarie per aggiornare Active Directory, usare Genera o Genera tutto per generare lo script necessario che è possibile fornire all'amministratore di Active Directory per rimuovere i nomi SPN duplicati.
Dopo aver rimosso i nomi SPN, eseguire nuovamente Kerberos Configuration Manager per verificare che i problemi del nome SPN vengano risolti.
Note
Quando viene avviata un'istanza del motore di database di SQL Server, SQL Server prova a registrare il nome SPN per il servizio SQL Server. Quando l'istanza viene arrestata, SQL Server prova ad annullare la registrazione del nome SPN. Affinché ciò si verifichi, l'account del servizio SQL Server richiede le autorizzazioni appropriate in Active Directory. Tuttavia, se l'account del servizio non dispone di questi diritti, la registrazione automatica del nome SPN non si verifica ed è necessario collaborare con l'amministratore di Active Directory per registrare questi NOMI SPN in modo che le istanze di SQL possano abilitare l'autenticazione Kerberos. Per altre informazioni, vedere Registrare un nome dell'entità servizio per le connessioni Kerberos.
Note
Negli ambienti in cui SQL è cluster, la registrazione automatica dei nomi SPN non è consigliata perché potrebbe richiedere più tempo per annullare la registrazione del nome SPN e registrare nuovamente il nome SPN in Active Directory rispetto al tempo necessario per l'accesso online a SQL Server. Se la registrazione del nome SPN non viene eseguita nel tempo, è possibile che SQL Server venga online perché l'amministratore del cluster non può connettersi all'istanza di SQL Server.
Opzioni aggiuntive
Per generare l'elenco SPN dalla riga di comando:
Passare alla riga di comando.
Note
Per risolvere il problema di connettività che influiscono su SSRS, aprire una finestra del prompt dei comandi amministrativa.
Passare alla cartella che contiene KerberosConfigMgr.exe.
Immetti
KerberosConfigMgr.exe -q -l
.Per altre opzioni della riga di comando, digitare
KerberosConfigMgr.exe -h
.
Per salvare le informazioni di configurazione Kerberos di un server:
- Connettersi al server Windows di destinazione.
- Selezionare Salva.
- Specificare il percorso in cui si desidera salvare il file. Può trovarsi in un'unità locale o in una condivisione di rete. Il file verrà salvato in formato .xml .
Per visualizzare le informazioni di configurazione Kerberos di un server dal file salvato:
- Seleziona Carica.
- Aprire il file XML generato da Kerberos Configuration Manager.
Per visualizzare i file di log per questo strumento:
Per impostazione predefinita, viene generato un file di log ogni volta che l'applicazione viene eseguita nella cartella dati dell'applicazione: %APPDATA%\Microsoft\KerberosConfigMgr.
Per ottenere assistenza, usare uno dei metodi seguenti:
- Passare il puntatore del mouse sul comando per generare una descrizione comando.
- Eseguire
KerberosConfigMgr.exe -h
al prompt dei comandi. - Selezionare il pulsante ? sulla barra degli strumenti.