Es posible que no no pueda conectarse a una instancia de SQL Server mediante un inicio de sesión anónimo


Importante: este artículo contiene información que muestra cómo reducir la configuración de seguridad o desactivar las características de seguridad en un equipo. Puede realizar estos cambios para solucionar un problema específico. Antes de realizar estos cambios, le recomendamos que evalúe los riesgos asociados con la implementación de esta solución en su entorno concreto. Si decide implementar esta solución alternativa, tome las medidas adicionales oportunas para ayudar a proteger su sistema.

Resumen


Cuando se agrega el inicio de sesión de NT AUTHORITY\ANONYMOUS LOGON a la instancia de Microsoft SQL Server 2000 o Microsoft SQL Server 2005 para que la instancia de SQL Server acepta conexiones anónimas a través de la seguridad integrada de Microsoft Windows y trata de conectarse a la instancia de SQL Server como un usuario anónimo, el intento de conexión no puede tener éxito y puede recibir el siguiente mensaje de error :
Error de inicio de sesión para usuario '(null)'. Motivo: No está asociado con una conexión de SQL Server de confianza.
Además, se graba el suceso siguiente en el registro de sucesos del sistema:
Tipo de suceso: Error
Origen del evento: mensaje

Categoría del suceso: ninguna
Id. de suceso: 6033
Fecha: < fecha >

Tiempo: < hora >
Usuario: N/D
Equipo: < nombre de equipo >

Descripción:

Una sesión anónima conectada desde < nombre de equipo > ha intentado abrir un identificador de directiva LSA en este equipo. Se rechaza el intento con STATUS_ACCESS_DENIED para evitar pérdidas información confidencial de seguridad a la persona que llama anónima.

La aplicación que realiza este intento debe corregirse. Póngase en contacto con el fabricante de la aplicación. Como solución temporal, esta medida de seguridad puede deshabilitarse al establecer la
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\TurnOffAnonymousBlock Valor DWORD a 1.
Este problema se produce cuando se cumplen todas las condiciones siguientes:
  • La instancia de SQL Server está instalada en un equipo que está ejecutando Microsoft Windows Server 2003.
  • El equipo que está ejecutando la instancia de SQL Server es un servidor miembro de un dominio.
  • El valor del registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\TurnOffAnonymousBlockfalta o es no establecido en 1.
  • El el acceso de red: permitir traducción SID/nombre anónima opción de seguridad en el equipo que está ejecutando la instancia de SQL Server no está habilitada.

Causa


Cuando intenta conectarse a la instancia de SQL Server como un usuario anónimo, la conexión anónima intenta abrir el identificador de directiva de LSA en el equipo que está ejecutando la instancia de SQL Server. De forma predeterminada, un servidor miembro de Windows Server 2003 rechaza un intento de conexión anónima que intenta abrir un identificador de directiva de LSA si no se establece el valor del registro TurnOffAnonymousBlock en 1. Por lo tanto, la conexión anónima no es correcta. Además, después de que SQL Server recibe la solicitud de conexión anónima, SQL Server llama a la función de API de Windows LookupAccountSid para obtener el nombre de la cuenta. Dado que se llama a la función en el contexto de la conexión anónima, la llamada de función falla también si el acceso de red: permitir traducción SID/nombre anónima no está habilitada la opción de seguridad.

Solución alternativa


Advertencia: Esta solución puede hacer que su equipo o su red sean más vulnerables a los ataques de usuarios malintencionados o de software malintencionado, como virus. No recomendamos esta solución, pero proporcionamos esta información para que puede implementar esta solución temporal a su propia discreción. Utilice esta solución bajo su propia responsabilidad.

Para evitar este problema, siga estos pasos en el equipo que ejecuta Windows Server 2003 para permitir conexiones anónimas a SQL Server 2000 o SQL Server 2005:
  1. Habilitar la acceso de red: permitir traducción SID/nombre anónima opción de seguridad en directiva de seguridad Local. Para ello, siga estos pasos:
    1. Haga clic en Inicioy, a continuación, haga clic en
      En el Panel de control.
    2. Haga doble clic en Herramientas administrativasy, a continuación, haga doble clic en Directiva de seguridad Local.
    3. En el panel izquierdo, expanda Directivas localesy, a continuación, haga clic en Opciones de seguridad.
    4. En el panel derecho, bajo la columna Directiva , busque y haga doble clic en el acceso de red: permitir traducción SID/nombre anónima.
    5. En el el acceso de red: permitir traducción SID/nombre anónima cuadro de diálogo, haga clic en la opción habilitado y, a continuación, haga clic en Aceptar.
    6. Cierre la ventana de Configuración de seguridad Local .
    7. Cierre la ventana Herramientas administrativas .
  2. Establezca el valor del Registro DWORD TurnOffAnonymousBlock en 1. Para ello, siga estos pasos:

    Importante: esta sección, el método o la tarea contiene pasos que indican cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente. Para una mayor protección, haga una copia de seguridad del registro antes de modificarlo. Entonces, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo hacer copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    322756 cómo hacer copia de seguridad y restaurar el registro en Windows
    1. Haga clic en Inicio, haga clic en
      Ejecutar, escriba regedity, a continuación, haga clic en
      OK.
    2. En el Editor del registro, busque y, a continuación, haga clic en el
      Clave del registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa .
    3. En el panel derecho, busque y haga doble clic en el
      TurnOffAnonymousBlock Valor DWORD del registro.

      Nota: Si el valor del Registro DWORD TurnOffAnonymousBlock no existe, debe crear el valor del registro.
    4. En el cuadro de diálogo Editar valor DWORD , escriba 1 en el cuadro información del valor y, a continuación, haga clic en Aceptar.
    5. Cierre el Editor del registro y reinicie el equipo. Es necesario para que surtan efecto los cambios de registro.
Nota: De forma predeterminada, la acceso de red: permitir traducción SID/nombre anónima opción de seguridad está habilitada en los equipos que actúan como controladores de dominio. Sin embargo, la opción de seguridad está deshabilitada en servidores miembro y estaciones de trabajo. Los controladores de dominio no requieren el
Intentos de clave del registro TurnOffAnonymousBlock para controlar la conexión anónima. Por lo tanto, si la instancia de SQL Server está instalada en un controlador de dominio que ejecuta Windows Server 2003, los intentos de conexión anónima para la instancia de SQL Server no fallan.

Más información


En un equipo que ejecuta Windows Server 2003, son más estrictos controles de seguridad que se realizan en las conexiones anónimas que intentan tener acceso al equipo. Si crea una página de Microsoft ASP.NET que utiliza autenticación de Windows y la suplantación en un servidor Web que ejecuta Servicios de Microsoft Internet Information Services (IIS) 6.0, pero no puede delegar las cuentas de usuario, son los intentos de conectarse a una instancia remota de SQL Server desde la página ASP.NET en el contexto de seguridad del inicio de sesión NT AUTHORITY\ANONYMOUS LOGON. Puede configurar su instancia de SQL Server para aceptar las conexiones anónimas a través de la seguridad integrada de Windows agregando el inicio de sesión de NT AUTHORITY\ANONYMOUS LOGON como un usuario de SQL Server y conceder los permisos necesarios al usuario. Cuando se agrega el inicio de sesión de NT AUTHORITY\ANONYMOUS LOGON a su instancia de SQL Server, las conexiones anónimas pueden tener acceso a datos de SQL Server sin tener que proporcionar las credenciales de inicio de sesión.

Importante: No es recomendable permitir el acceso anónimo a SQL Server. Todos los permisos que se conceden al inicio de sesión NT AUTHORITY\ANONYMOUS LOGON pueden utilizarse por cualquier usuario que se puede conectar al equipo que está ejecutando SQL Server. Si debe permitir el acceso anónimo a su instancia de SQL Server, se recomienda que se conceden permisos de lectura sólo para el inicio de sesión de NT AUTHORITY\ANONYMOUS LOGON para ver los datos de SQL Server que desea ser visibles públicamente. Además, se recomienda que se conceden permisos de ejecución sólo a los procedimientos de SQL Server almacenados que realizan operaciones limitadas.

En lugar de permitir las conexiones anónimas a su instancia de SQL Server, puede conceder el acceso requerido a una cuenta específica de SQL Server y pasar las credenciales de inicio de sesión para la cuenta de SQL Server en la cadena de conexión en la página ASP.NET. Mediante SQL Server la autenticación evita los intentos de conexión anónima para la instancia de SQL Server y es más segura.

Si el el acceso de red: permitir traducción SID/nombre anónima seguridad está habilitada en el equipo que ejecuta Windows Server 2003, todos los usuarios que pueden realizar una conexión de red en el equipo pueden buscar los nombres de cuenta de las identificaciones de seguridad conocido (SID), como la cuenta de administrador. Un atacante malintencionado puede utilizar esta información para conectarse al servidor mediante un método como la averiguación de contraseñas o para bloquear las cuentas con intentos fallidos de conexión.

Si establece el valor del valor del registro TurnOffAnonymousBlock en 1, las conexiones anónimas pueden abrir un identificador para la directiva de la autoridad de seguridad Local. Para obtener más información acerca de la directiva LSA, visite los siguientes sitios Web de MSDN:

Referencias


Para obtener información adicional acerca de cómo solucionar los problemas de conectividad en SQL Server 2000, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
827422 cómo solucionar problemas de conectividad en SQL Server 2000

Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
247931 métodos de autenticación para las conexiones a SQL Server en páginas Active Server