No se puede iniciar sesión en SQL Server + Autenticación de SQL Server + Error: 18456

121

He creado una cuenta de inicio de sesión en mi servidor localhost \ sql2008 (por ejemplo, User123)

Asignado a la base de datos (predeterminado)

El modo de autenticación en SQL Server está configurado para ambos (Windows y SQL)

Pero el inicio de sesión en SQL Server falla con el siguiente mensaje (para User123)

Nota: Verifique varias veces que el nombre de usuario / contraseña se ingresaron correctamente

Error de detalles:

Error de inicio de sesión para el usuario 'User123' (proveedor de datos Net.SqlClient)

Nombre del servidor: localhost \ sql2008 Número de error: 18456 Gravedad: 14 Estado: 1 Número de línea: 65536

cualquier ayuda en esto por favor.

Sreedhar
fuente
1
Pruebe el acceso de autenticación de SQL y Windows a través de la Consola de administración de SqlServer para el usuario y vea si puede acceder con la cuenta anterior. ¿Qué proveedor de datos y cadena de conexión está utilizando?
Joe Pitz
1
Estoy tratando de iniciar sesión en SSMS y arroja el error anterior.
Sreedhar
1
¿Puede iniciar sesión como cuenta de administrador?
Joe Pitz
Inicie sesión como administrador y consulte su registro de eventos. El motivo del error debe aparecer allí. Mire debajo de la carpeta de administración
Joe Pitz
La alternativa que funcionó para mí fue stackoverflow.com/questions/28090747/…
Mark Schultheiss

Respuestas:

49

Por defecto, el mensaje de error de inicio de sesión fallido no es más que una conexión de usuario cliente que ha sido rechazada por el servidor debido a una falta de coincidencia de las credenciales de inicio de sesión. La primera tarea que puede verificar es ver si ese usuario tiene privilegios relevantes en esa instancia de SQL Server y también en la base de datos relevante, eso es bueno. Obviamente, si no se han establecido los privilegios necesarios, debe solucionar ese problema otorgando los privilegios relevantes para el inicio de sesión de ese usuario.

Aunque si ese usuario tiene concesiones relevantes en la base de datos y el servidor, si el servidor encuentra problemas de credenciales para ese inicio de sesión, evitará que se otorgue la autenticación a SQL Server, el cliente recibirá el siguiente mensaje de error:

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

Ok, ahora qué, al mirar el mensaje de error, sientes que esto no es descriptivo para comprender el nivel y el estado. De forma predeterminada, el error del sistema operativo mostrará 'Estado' como 1 independientemente de la naturaleza de los problemas al autenticar el inicio de sesión. Por lo tanto, para investigar más a fondo, también debe consultar el registro de errores de la instancia de SQL Server relevante para obtener más información sobre la gravedad y el estado de este error. Puede buscar en una entrada correspondiente en el registro como:

2007-05-17 00:12:00.34 Logon     Error: 18456, Severity: 14, State: 8.
or

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

Como se definió anteriormente, las columnas de gravedad y estado del error son clave para encontrar el reflejo exacto de la fuente del problema. En el error anterior, el número 8 para el estado indica un error de autenticación debido a una falta de coincidencia de contraseña. Los libros en línea se refieren a: De forma predeterminada, los mensajes definidos por el usuario de gravedad inferior a 19 no se envían al registro de aplicaciones de Microsoft Windows cuando se producen. Los mensajes definidos por el usuario de gravedad inferior a 19, por lo tanto, no activan alertas del Agente SQL Server.

Sung Lee, administrador de programas en protocolos de SQL Server (equipo de desarrollo) ha descrito más información sobre la descripción del estado de error: los estados de error comunes y sus descripciones se proporcionan en la siguiente tabla:

ERROR STATE       ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5           Invalid userid
6                 Attempt to use a Windows login name with SQL Authentication
7                 Login disabled and password mismatch
8                 Password mismatch
9                 Invalid password
11 and 12         Valid login but server access failure
13                SQL Server service paused
18                Change password required


Well I'm not finished yet, what would you do in case of error:

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

Puede ver que no hay ningún nivel de gravedad o estado definido en el registro de errores de esa instancia de SQL Server. Entonces, la siguiente opción de solución de problemas es mirar el registro de seguridad del Visor de eventos [editar porque falta una captura de pantalla pero obtienes el

idea, busque en el registro de eventos eventos interesantes].

Joe Pitz
fuente
1
Gracias se verá y verá cómo va
Sreedhar
1
enlace muerto considere revisar
Chris Hayes
10
Se debe elegir la respuesta superior debajo de esta, no esta.
void.pointer
4
Lea la publicación a continuación.
Levi Fuller
6
@ void.pointer el OP ya estableció que el "Modo de autenticación en SQL Server está configurado para ambos (Windows y SQL)". Entonces, la publicación a continuación no tiene relevancia para esta pregunta.
Manachi
336

Debe habilitar la autenticación de SQL Server:

  1. En el Explorador de objetos, haga clic derecho en el servidor y haga clic en "Propiedades"

Cuadro de diálogo Propiedades de DBMS

  1. En la ventana "Propiedades del servidor", haga clic en "Seguridad" en la lista de páginas de la izquierda. En "Autenticación del servidor", elija la opción de radio "Modo de autenticación de SQL Server y Windows".

Cuadro de diálogo Autenticación de SQL Server

  1. Reinicie el servicio SQLEXPRESS.
PrateekSaluja
fuente
29
Oh, GRACIAS un millón de veces. ¡Principalmente por la palabra "reiniciar" arriba!
Magnus Smith
4
Sé que esto es viejo, pero me salvó totalmente el trasero. Gracias Prateek. Lo aprecio. ¡NECESITA reiniciar!
Levi Fuller
3
¿Por qué debería funcionar esto si OP establece explícitamente que el "Modo de autenticación en SQL Server está configurado para ambos (Windows y SQL)"?
Tim Schmelter
4
Esta respuesta es redundante y no es útil para la pregunta. El OP ya estableció que el "Modo de autenticación en SQL Server está configurado para ambos (Windows y SQL)".
Manachi
1
¡¡Esto fue increíble .. !! Gracias PrateekSaluja
Amin Sayed
44

Tuve este mismo problema, sin embargo, el mío fue porque no había configurado la autenticación del servidor en "SQL Server y el modo de autenticación de Windows" (que tenía). Solo quería mencionarlo aquí en caso de que alguien se lo perdiera en su pregunta.

Puede acceder a esto por

  • Haga clic derecho en la instancia (IE SQLServer2008)
  • Seleccione "Propiedades"
  • Seleccione la opción "Seguridad"
  • Cambie "Autenticación del servidor" a "Modo de autenticación de SQL Server y Windows"
  • Reinicie el servicio SQLServer
    • Haga clic derecho en la instancia
    • Haga clic en "Reiniciar"
Nathan Koop
fuente
6
Pasé como dos horas porque no entendía que necesitaba REINICIAR todo el servidor. Es una locura que sea necesario reiniciar para tal cosa. Microsoft no tiene límites para el crapware que escupe.
Usuario registrado
1
Esta también es una respuesta vital a por qué no se puede conectar a la instancia de Amazon EC2 qué servidor SQL instaló en ella.
Teoman shipahi
19

Puede acceder a esto por

Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
    Right click on instance
    Click "Restart"

Solo para cualquiera que lea esto: esto también funcionó para mí en 2012 SQL Server. Gracias

Barry
fuente
1
Gracias, esto fue perfecto, directo al grano ... la respuesta aceptada está llena de buena información, pero esto es lo que funcionó para mí.
Tony
4
Esto no puede funcionar para OP ya que mencionó que "El modo de autenticación en SQL Server está configurado para ambos (Windows y SQL)".
Tim Schmelter
1

La solución correcta al problema es asegurarse de que la autenticación del servidor SQL esté activada para su servidor SQL.

Deepesh Bajracharya
fuente
1

Después de habilitar "SQL Server y el modo de autenticación de Windows", navegue hasta lo siguiente.

  1. Administración de computadoras (en el menú Inicio)
  2. Servicios y aplicaciones
  3. Administrador de configuración de SQL Server
  4. Configuración de red de SQL Server
  5. Protocolos para MSSQLSERVER
  6. Haga clic derecho en TCP / IP y habilítelo.

Finalmente reinicie SQL Server.

Vasudev
fuente