Información general del Administrador de configuración de Kerberos para SQL Server
Se aplica a: SQL Server
Número de KB original: 2985455
Una configuración incorrecta de Kerberos en la red puede provocar varios errores de conectividad en Microsoft SQL Server. El Administrador de configuración de Kerberos para SQL Server es una herramienta de diagnóstico que le ayuda a solucionar problemas de conectividad relacionados con Kerberos que afectan a SQL Server, SQL Server Reporting Services (SSRS) y SQL Server Analysis Services (SSAS). En este artículo se proporciona información sobre cómo usar la herramienta Kerberos Configuration Manager y cómo interpretar la salida de la herramienta para corregir los problemas de Kerberos que afectan a SQL Server.
Nota:
Kerberos Configuration Manager se proporciona tal cual y no se ofrece soporte técnico ni actualizaciones para él. No se ha actualizado para usar SQL Server 2022 y versiones posteriores del proveedor WMI. Para solucionar y diagnosticar problemas de configuración de Kerberos relacionados con SQL Server, consulte SQLCheck.
Funciones del Administrador de configuración de Kerberos
Kerberos Configuration Manager puede realizar las siguientes tareas:
- Recopile información sobre el sistema operativo, las instancias de Microsoft SQL Server y los agentes de escucha de grupo de disponibilidad AlwaysOn instalados en un servidor.
- Informe de todas las configuraciones de nombre de entidad de seguridad de servicio (SPN) y delegación en el servidor.
- Identificar posibles problemas en los SPN y las delegaciones.
- Corrija posibles problemas de SPN.
Escenarios de uso
Esta herramienta le ayuda a solucionar las siguientes excepciones:
- 401
Nota: Este mensaje de error es para errores HTTP, errores de SSRS y otros errores similares.
- No se puede generar el contexto de SSPI
- Error de inicio de sesión del usuario "NTAUTHORITY\ANONYMOUS LOGON"
- Error de inicio de sesión para el usuario '(null)'
- Error de inicio de sesión del usuario (vacío)
Nota:
Antes de empezar a solucionar problemas, se recomienda revisar los requisitos previos y, a continuación, pasar por la lista de comprobación general para solucionar errores relacionados con la conectividad.
Nota:
Si tiene acceso de administrador al equipo basado en SQL Server, también puede ejecutar la herramienta Comprobación de la configuración de conectividad de SQL en ese equipo y, a continuación, revisar la salida para comprobar la configuración de SPN de la instancia de SQL Server.
Descarga de la herramienta
Esta herramienta está disponible para su descarga desde el Centro de descarga de Microsoft:
Administrador de configuración de Microsoft Kerberos para SQL Server
Nota:
Puede descargar e instalar la herramienta en cualquier equipo del dominio que pueda conectarse al equipo basado en SQL Server.
Permisos
Para solucionar problemas de conectividad que afectan a SQL, SSRS y SSAS, conéctese al equipo de destino (que hospeda el servicio) mediante una cuenta de usuario de dominio que tenga permisos administrativos para ese equipo.
Opcional: si desea usar la herramienta para corregir los problemas de SPN identificados por la herramienta, la cuenta de dominio debe tener el permiso Validación de escritura en el nombre del principio de servicio.
Uso de la herramienta
Una vez finalizada la instalación, inicie el KerberosConfigMgr.exe binario; para ello, vaya a la carpeta de instalación. De forma predeterminada, la ubicación es C:\Archivos de programa\Microsoft\Kerberos Configuration Manager para SQL Server.
Para obtener información sobre cómo iniciar una aplicación como administrador o un usuario diferente, consulte Usar ejecutar para iniciar una aplicación como administrador.
Use una de las siguientes opciones para empezar a solucionar problemas:
Para conectarse a un equipo remoto basado en SQL Server, escriba los valores adecuados para Nombre del servidor, Nombre de usuario de dominio y Contraseña.
Nota:
La herramienta Administrador de configuración de Kerberos usa una API de Windows para consultar y mostrar información sobre la configuración de Kerberos para el equipo con SQL Server. Por lo tanto, escriba siempre el nombre del equipo que hospeda la instancia de SQL Server, incluso si está solucionando problemas relacionados con Kerberos para una instancia con nombre.
Para conectarse a un servidor local, seleccione Conectar para analizar la configuración de Kerberos. En este caso, no es necesario especificar el nombre del servidor, el nombre de usuario del dominio o la contraseña.
Nota:
La cuenta que inicia la herramienta debe ser una cuenta de administrador local. Para obtener información sobre cómo iniciar una aplicación como administrador o un usuario diferente, consulte Usar ejecutar para iniciar una aplicación como administrador.
Una vez que la conexión se realiza correctamente, todos los SPN relacionados se muestran en la captura de pantalla siguiente.
En esta captura de pantalla, la interfaz de usuario tiene las siguientes pestañas:
Sistema: muestra la información del usuario y la información del equipo.
SPN: muestra la información del nombre de entidad de seguridad de servicio (SPN) sobre cada una de las instancias de SQL Server que se encuentran en el servidor de destino y proporciona detalles como el SPN necesario y su estado.
Generar: ayuda a encontrar los SPN que faltan y los configurados. También le ayuda a generar el script de generación de SPN.
- Selecciona Generar.
- En el cuadro de diálogo que se abre, proporcione un nombre (en este caso, "generateSPNss"), establezca Guardar como tipo como archivo Mgr(.cmd) de configuración de Kerberos y, a continuación, seleccione Guardar.
Se crea el archivo generateSPNss.cmd y puede ejecutar este archivo en un símbolo del sistema. El contenido del archivo generateSPNss.cmd será similar al del ejemplo siguiente:
:: 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**
Use SetSPN para crear un SPN en la cuenta de servicio de SQL Server.
Use Fix (Corregir ) para corregir problemas y agregar SPN. Solo puede agregar un SPN si tiene los permisos necesarios. Al seleccionar Corregir, se muestra la siguiente información sobre herramientas:
Nota:
La herramienta proporciona los comandos Fix y Generate solo para instancias predeterminadas y instancias con nombre que tienen puertos estáticos. En el caso de las instancias con nombre que usan puertos dinámicos, se recomienda cambiar de puertos dinámicos a estáticos o proporcionar permisos necesarios para que la cuenta de servicio registre y anule el registro del SPN cada vez que se inicie el servicio SQL. De lo contrario, debe anular manualmente el registro y volver a registrar los SPN correspondientes cada vez que se inicie el servicio. Para obtener más información, vea Registrar un nombre de entidad de seguridad de servicio para las conexiones con Kerberos.
Delegación: use Delegación para identificar cualquier problema que afecte a la configuración de la cuenta de servicio para la delegación. Esto es especialmente útil para solucionar problemas de servidor vinculado. Por ejemplo, si la desprotección del SPN está bien, pero sigue experimentando problemas que afectan a las consultas del servidor vinculado, esto podría indicar que la cuenta de servicio no está configurada para delegar las credenciales. Para obtener más información, vea el tema Libros en pantalla en Configuración de servidores vinculados para delegación.
Interpretación y actuación sobre el diagnóstico de Kerberos Configuration Manager
Revise el diagnóstico de la herramienta haciendo referencia a la columna Estado . En función del estado, siga los pasos adecuados para resolver el problema.
Estado: correcto
Más información: el elemento activado está configurado correctamente. Vaya al siguiente elemento de la salida.
Acción: no se requiere ninguna acción.
Estado: falta el SPN necesario
Más información: este estado se notifica si falta el nombre de entidad de seguridad de servicio (SPN) mencionado en la columna SPN requerido para la cuenta de inicio de SQL Server en Active Directory.
Acción: siga estos pasos para comprobar si se resuelven los problemas de SPN:
- Seleccione Corregir para revisar la información en el cuadro de diálogo Advertencia .
- Seleccione Sí para agregar el SPN que falta a Active Directory.
- Si la cuenta de dominio tiene los permisos necesarios para actualizar Active Directory, el SPN necesario se agregará a Active Directory.
- Si la cuenta de dominio no tiene permisos necesarios para actualizar Active Directory, use Generar o generar todo para generar el script que ayudará al administrador de Active Directory a agregar los SPN que faltan.
- Una vez agregados los SPN, vuelva a ejecutar Kerberos Configuration Manager para comprobar que se han resuelto los problemas de SPN.
Estado: TCP debe estar habilitado para usar la configuración de Kerberos.
Más información: este estado se muestra si TCP no está habilitado en el equipo cliente.
Acción: siga estos pasos para habilitar el protocolo TCP/IP para la instancia de SQL Server:
En Administrador de configuración de SQL Server - Consola, expanda Configuración de red de SQL Server.
En Consola, seleccione Protocolos para
<instance name>
.En Detalles, seleccione TCP/IP y, a continuación, seleccione Habilitar.
En Consola, seleccione Servicios de SQL Server.
En Detalles, seleccione SQL Server para
<instance name>
.Seleccione Reiniciar para detener y reiniciar el servicio SQL Server. Para obtener más información, consulte la sección Habilitar o deshabilitar un protocolo de red del servidor.
Estado: puerto dinámico
Más información: este estado se muestra para las instancias con nombre que usan puertos dinámicos (configuración predeterminada). En entornos en los que necesita usar Kerberos para conectarse a SQL Server, debe establecer la instancia con nombre para usar un puerto estático y usar ese puerto al registrar el SPN. De lo contrario, el SPN registrado en Active Directory dejará de ser válido la próxima vez que una instancia con nombre empiece a escuchar en un puerto nuevo distinto del que se registró el SPN.
Nota:
Esta recomendación solo se aplica a los entornos que dependen del registro manual de SPN.
Acción: siga estos pasos para configurar la instancia de SQL Server para usar un puerto estático:
- En Administrador de configuración de SQL Server - Consola, expanda Configuración de red de SQL Server, expanda Protocolos para
<instance name>
y, a continuación, haga doble clic en TCP/IP. - En Propiedades de TCP/IP, seleccione Escuchar todo en el protocolo.
- Si Escuchar todo está establecido en Sí, cambie a Direcciones IP y desplácese hasta la parte inferior de la ventana para buscar la configuración IPAll .
- Elimine el valor actual en Puertos dinámicos TCP y escriba un número de puerto en el puerto TCP.
- Seleccione Aceptar y, a continuación, reinicie la instancia de SQL Server. Para obtener más información, vea Configurar un servidor para escuchar en un puerto TCP específico.
- Si Escucha todo está establecido en No, cambie a Direcciones IP y compruebe todas las direcciones IP que aparecen en los nodos IP1 e IP2. Para las direcciones que se establecen en Habilitado, quite el valor actual en Puertos dinámicos TCP y, a continuación, establezca un valor en Puerto TCP.
- Seleccione Aceptar y reinicie la instancia de SQL Server para que la configuración surta efecto. Para obtener más información, vea Configurar un servidor para escuchar en un puerto TCP específico.
- En Administrador de configuración de SQL Server - Consola, expanda Configuración de red de SQL Server, expanda Protocolos para
Estado: SPN duplicado
Más información: podría encontrarse con este escenario si el mismo SPN está registrado en cuentas diferentes en Active Directory.
Acciones: siga estos pasos para agregar un SPN a Active Directory:
Seleccione Corregir.
Active la información en el cuadro de diálogo Advertencia .
Seleccione Sí para agregar el SPN que falta a Active Directory.
Si la cuenta de dominio tiene los permisos necesarios para actualizar Active Directory, se eliminará el SPN incorrecto.
Si la cuenta de dominio no tiene permisos necesarios para actualizar Active Directory, use Generar o generar todo para generar el script necesario que puede proporcionar al administrador de Active Directory para quitar los SPN duplicados.
Después de quitar los SPN, vuelva a ejecutar Kerberos Configuration Manager para comprobar que se resuelven los problemas de SPN.
Nota:
Cuando se inicia una instancia de Motor de base de datos de SQL Server , SQL Server intenta registrar el SPN para el servicio SQL Server. Cuando la instancia se detiene, SQL Server intenta anular el registro del SPN. Para que esto ocurra, la cuenta de servicio de SQL Server requiere los permisos adecuados en Active Directory. Pero si la cuenta de servicio no tiene estos derechos, no se produce el registro automático de SPN y debe trabajar con el administrador de Active Directory para registrar estos SPN para que las instancias de SQL puedan habilitar la autenticación Kerberos. Para obtener más información, vea Registrar un nombre de entidad de seguridad de servicio para las conexiones con Kerberos.
Nota:
En entornos en los que SQL está agrupado, no se recomienda el registro automático de SPN porque puede tardar más tiempo en anular el registro del SPN y volver a registrar el SPN en Active Directory que el tiempo necesario para que SQL Server se conecte. Si el registro de SPN no se produce a tiempo, esto podría impedir que SQL Server se conecte porque el administrador del clúster no puede conectarse a la instancia de SQL Server.
Opciones adicionales
Para generar la lista de SPN desde la línea de comandos:
Vaya a la línea de comandos.
Nota:
Para solucionar problemas de conectividad que afectan a SSRS, abra una ventana del símbolo del sistema administrativo.
Cambie a la carpeta que contiene KerberosConfigMgr.exe.
Escriba
KerberosConfigMgr.exe -q -l
.Para obtener más opciones de línea de comandos, escriba
KerberosConfigMgr.exe -h
.
Para guardar la información de configuración de Kerberos de un servidor:
- Conéctese al servidor de Windows de destino.
- Haga clic en Guardar.
- Especifique la ubicación en la que desea guardar el archivo. Puede estar en una unidad local o en un recurso compartido de red. El archivo se guardará en formato .xml .
Para ver la información de configuración de Kerberos de un servidor desde el archivo guardado:
- Seleccione Cargar.
- Abra el archivo XML generado por Kerberos Configuration Manager.
Para ver los archivos de registro de esta herramienta:
De forma predeterminada, se genera un archivo de registro cada vez que la aplicación se ejecuta en la carpeta de datos de la aplicación: %APPDATA%\Microsoft\KerberosConfigMgr.
Para obtener ayuda, use cualquiera de los métodos siguientes:
- Mantenga el puntero del mouse sobre el comando para generar una información sobre herramientas.
- Ejecute
KerberosConfigMgr.exe -h
en el símbolo del sistema. - Seleccione el botón Ayuda de la barra de herramientas.