Esecuele Sin Fronteras

SQL Server, Reporting Services y Biztalk Server
  • Esecuele Sin Fronteras

    Autenticación Kerberos y Reporting Services

    • 0 Comments

     

    Síntoma

    El cliente experimenta el siguiente mensaje de error al ejecutar un informe de Reporting Services causado al conectarse a las bases de datos de SQL Server y a los cubos de SSAS desde Reporting Services.

    · Error al procesar el informe. (rsProcessingAborted)

    · No se puede crear una conexión al origen de datos 'DataSource1'. (rsErrorOpeningConnection)

    · The connection either timed out or was lost.

    · Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

    · An existing connection was forcibly closed by the remote host

    Al ejecutar el informe desde el servidor de Reporting Services el error no se produce.

    Las credenciales usadas en el datasource del informe son Windows Integrada. Si cambiamos las credenciales de conexión al datasource por Credenciales Almancenadas, el error no se produce, ni desde el servidor de Reporting Services ni desde una máquina cliente.

    Entorno:

    1 máquina cliente desde donde reprocimos los mensajes de error anteriores al ejecutar un informe.

    1 servidor SSRS

    1 servidor SQL Server + SSAS

     


    Causa

    Al usar credenciales de Windows Integrada en el datasource de un informe, si ejecutamos el informe desde una máquina cliente, las credenciales del usuario harán un doble salto: pasando de la máquina cliente al servidor de Reporting Services y de este al servidor de base de datos.

    Para este tipo de entornos, Reporting Services debe utilizar la autenticación Kerberos.

    En este artículo se describen los diferentes pasos a seguir para configurar Kerberos en este tipo de entornos.

     

     

    Configuración

    1. En el archivo de configuración de rsreportserver.config (C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer) la autenticación configurada debe ser Negotiate.

    <AuthenticationTypes>

    <RSWindowsNegotiate/>

    </AuthenticationTypes>

    2. Configurar los SPNs de la cuenta de servicio de los tres servicios (SSRS,SQL SERVER y SSAS) usando la línea de comando:

    setspn -s SPN dominio\CuentaDeServicio

    * El comando setspn -s impide tregistrar un SPN que ya está registrados, evitando así la duplicidad de SPN para una cuenta.

    * Para registrar un SPN se necesita que el usuario que lo hace sea administrador del dominio.

     

    a. SPNs necesarios en Reporting Services (deben registrarse para la cuenta de servicio de SSRS).

    HTTP/<hostname>

    HTTP/<hostname.dominio>

    donde hostname es el utilizado en las URLs de las sites de SSRS:

    /reports">http://<hostname>/reports

     

    b. SPNs necesarios en SQL SERVER y SSAS

    (Siempre nos referimos a las base de datos utilizada por el informe y definida en su data source y en la instancia de SQL Server que aloja dicha base de datos).

     

    INSTANCIAS PREDETERMINADAS

    SQL SERVER (deben registrarse para la cuenta de servicio de SQLSERVER).

    Si se trata de una instancia por defecto (MSSQLSERVER) que escucha en el puerto por defecto:

    MSSQLSvc/<serverhostname.dominio>:1433

    Para una instancia por defecto que escucha en un puerto distinto a TCP:

    MSSQLSvc/<serverhostname.dominio>

    SSAS (deben registrarse para la cuenta de servicio de SSAS).

    Para una instancia por defecto:

    MSOLAPSvc.3/serverHostName.dominio

    MSOLAPSvc.3/serverHostName

    INSTANCIAS CON NOMBRE

    SQL SERVER (deben registrarse para la cuenta de servicio de SQLSERVER).

    Para una instance nombrada que escucha en un puerto TCP

    MSSQLSvc/<serverhostname.dominio>:puerto

    Para una instance nombrada que escucha en un puerto distinto a TCP:

    MSSQLSvc/<serverhostname.dominio>:nombredeinstancia

    SSAS (deben registrarse para la cuenta de servicio de SSAS).

    Para una instancia con nombre:

    MSOLAPSvc.3/serverHostName.dominio:instanceName

    MSOLAPSvc.3/serverHostName:instanceName

    Para instancias con nombre es necesario configurar los SPNs para SQL Browser:

    MOLAPDisco.3/serverHostName MOLAPDisco.3/serverHostName.dominio

     

    3. Habilitar para delegación las cuentas de máquina y las cuentas de servicio requeridas en el entorno en el Directorio Activo.

    a. Comprueba que la opción "Account is sensitive and cannot be delegated" para la cuenta especifica no está seleccionada (está opción se encuentra en la pestaña “Cuenta” de las propiedades de la cuenta seleccionada).

    En la pestaña "Delegación" podrá configurar una de las siguientes opciones:

    b. Full delegation: la cuenta se habilita para delegación para cualquier servicio.

    c. Constrained delegation: la cuenta se habilita sólo para aquerllos servicios que se configuren en esta pestaña.

    Más información :

    Registrar un nombre principal de servicio para las conexiones con Kerberos

    http://msdn.microsoft.com/es-es/library/ms191153.aspx

    Cómo configurar SQL Server 2008 Analysis Services y SQL Server 2005 Analysis Services para utilizar la autenticación Kerberos

    (este artículo también aplica SSAS 2008 R2)

    http://support.microsoft.com/kb/917409

     

     

    Si el error continua reproduciéndose...

    1. Comprobar que no existan SPNs duplicados para ninguna cuenta de servicio. Esta comprobación la realizamos mediante la línea de comandos: setspn –x.

    Si existe alguna lo eliminamos mediante el comando:

    Setspn –d SPN dominio\cuentadeservicio

    2. Si en algún momento anterior a la configuración de Kerberos hemos cambiado la cuenta de servicio de cualquiera de estos tres servicios, asegurarse de que este cambio se ha realizado mediante la consola de administración del servicio correspondiente:

    * Reporting Services Configuration Manager

    * SQL Server Configuration Manager.

    En caso contrario, la cuenta de servicio modificada no habrá sido completamente actualizada.

    3. Si los puntos 1 y 2 están comprobados habilitar los logs verbose de Kerberos en el servidor de base de datos y ver el mensaje de error en los logs de eventos de sistema.

    Es importante deshabilitar los estos logs una vez reproducido el problema para no tener impacto sobre el servidor.

    Cómo habilitar el registro de sucesos de Kerberos

    http://support.microsoft.com/kb/262177

     

    · Beatriz Sanagustín -

    Ingeniero de soporte de Reporting Services

  • Esecuele Sin Fronteras

    Problemas con SQL Server 2012 Service Pack 1

    • 0 Comments

    Estamos encontrándonos con un problema después de la instalación de SQL Server 2012 Service Pack 1.

     

    Sintoma:

    Después de instalar el Service Pack 1 de SQL Server 2012 uno o mas de los siguientes síntomas pueden aparecer:

    El uso de CPU es casi del 100%, el consumidor principal de CPU es msiexec.exe

     

    El archivo '%systemroot%\system32\config\SOFTWARE'  empieza a crecer de manera indefinida, se crean un montón de registros en las siguientes claves del registro:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots

    o

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots

     

    Los siguientes errores aparecen en el visor de eventos de aplicación:

    1101 de “.NET Runtime Optimization”

    1001 de “MSInstaller

     

    Es imposible arrancar Management Studio, cada vez que se intenta iniciar el siguiente error aparece:

    "Cannot find one or more componente. Please reinstall the application".

     

    Causa:

    Debido a un problema de firmado en algunos ensamblados el proceso de ngen intenta recompilar estos ensamblados de forma indefinida provocando los síntomas descritos.

     

    Resolución:

    1 – Parar la ejecución de ngen para evitar el uso de CPU y la generación de claves en el registro con los siguientes comandos:

    %SystemRoot%\Microsoft.Net\Framework\v4.0.30319\ngen queue pause
    %SystemRoot%\Microsoft.Net\Framework64\v4.0.30319\ngen queue pause

    2 – Instalar el Cumulative Update 2 de SQL Server 2012 Service Pack 1: http://support.microsoft.com/kb/2790947

    Esto instala los ensamblados correctos evitando la generación de nuevas claves en el registro

    3 – Ejecutar los siguientes comandos para eliminar el exceso de claves en el registro:

    - %SystemRoot%\Microsoft.Net\Framework\v4.0.30319\ngen eqi
    - %SystemRoot%\Microsoft.Net\Framework64\v4.0.30319\ngen eqi

     

    Información Adicional:

    Si el registro de Windows a crecido de forma exagerada que hace que la máquina no rinda del todo bien deberemos compactar el registro, para ello:

    1 – Arrancar Windows en modo reparación (F8 en el arranque)

    2 – Abrir un línea de comandos

    3 – Buscar la unidad donde está la instalación de Windows [drive] puedes encontrarla en el dialogo “System Recovery Options” Sustituir [drive] por esta unidad en las instrucciones.

    4 – Navegar al directorio Windows\system32\config

    [drive]:

    cd [drive]:\Windows\System32\config

    5 – Cargar la clave de registro SOFTWARE

    reg load HKLM\Bloated SOFTWARE

    6 – Start REGEDIT

    7 – Click derecho en HKEY_LOCAL_MACHINE\Bloated y hacer clieck en export. Salvar el archivo como “Registry Hive File” en “[drive]:\Windows\system32\config\SOFTWARENew

    8 – Cerrar REGEDIT, esto es necesario para evitar que REGEDIT bloquee el archivo SOFTWARE

    9 – Descargar la rama Bloated del registro

    reg unload HKLM\Bloated

    10 – Renombrar [drive]:\Windows\system32\config\SOFTWARE a [drive]:\Windows\system32\config\SOFTWAREOld

    11 - Renombrar [drive]:\Windows\system32\config\SOFTWARENew a [drive]:\Windows\system32\config\SOFTWARE

    12 – Salir de la línea de comandos y reiniciar la máquina.

     

    Notas

    Podéis leer mas información sobre este problema aquí: http://support.microsoft.com/kb/2800050

    Si el archivo '%systemroot%\system32\config\SOFTWARE'  ha alcanzado los 2GB y el sistema no arranca la mejor alternativa es reinstalar el sistema operativo.

    Para cargar el registro en el modo reparación “REG LOAD” se necesita una cantidad importante de RAM, para un archivo SOFTWARE de 2GB se necesitan en torno a 8GB de RAM.

    Pablo Gavela López – Ingeniero de Soporte de SQL Server

Page 1 of 1 (2 items)