No puedo conectarme a SQL Server usando la cuenta 'sa', ¿qué me falta?

20

Estoy intentando iniciar sesión en una instancia de SQL Server 2005 Express con el siguiente comando:

osql -S .\INSTANCE -U sa -P password

Me sale el error: Error de inicio de sesión para el usuario 'sa'.

Puedo conectarme bien usando el interruptor -E. Debo agregar que ha estado funcionando durante meses. Creo que alguien cambió algo, pero no puedo entender qué es.

Esto es lo que probé:

  • Inicie sesión utilizando la autenticación de Windows y cambiando la contraseña sa:

    sp_password NULL, newpassword, 'sa'

  • Habilitar el inicio de sesión 'sa':

    ALTER INICIAR SESIÓN EN HABILITAR; IR ALTERAR INICIAR SESIÓN CON CONTRASEÑA = 'nueva contraseña'; VAMOS

  • Revisó el Registro de Windows para asegurarse de que la autenticación mixta esté habilitada. El valor era correcto: LoginMode = 2

¿Qué más debo consultar? Gracias por adelantado.

INFORMACIÓN ADICIONAL:

Este es un servidor Windows 2003. Tienen algunas políticas de contraseña habilitadas, recuerdo que necesitaba cambiar la contraseña predeterminada 'sa' que usa mi aplicación cuando instala SQL Server en otra más compleja.

Me estoy conectando usando VNC, así que realmente no puedo usar SSMS

Mi aplicación puede conectarse usando otro inicio de sesión de SQL Server, pero no 'sa'

Finalmente, si no encontramos una solución, eliminaré esta instancia y la instalaré nuevamente, pero realmente me gustaría averiguar cuál es el problema. En caso de que vuelva a ocurrir y solo por pura curiosidad.

PUNTA
fuente

Respuestas:

23

Como dijo @SpaceManSpiff, no olvide verificar si el modo mixto está habilitado. Alguien cambió esa configuración para mí y tuve el mismo problema. Aquí está cómo resolverlo:

  1. Inicie sesión en MSSQL Server Management Studio con autenticación de Windows.
  2. En el Explorador de objetos de SQL Server Management Studio, haga clic con el botón derecho en el servidor y luego haga clic en Propiedades.
  3. En las Propiedades del servidor, seleccione una página de "Seguridad".
  4. Seleccione la autenticación del servidor como "Modo de autenticación de SQL Server y Windows" y haga clic en Aceptar. Propiedades de la base de datos de administración del servidor MSSQL
  5. Reinicie los servicios SQL y luego intente iniciar sesión con detalles 'sa'.

Fuente: http://forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/

emmanuel
fuente
12

Ok, he podido averiguar qué estaba pasando (más o menos) y obtuve una solución alternativa.

Parece que hace una semana estaban jugando con la política de seguridad de Windows. Estaban agregando / quitando permisos pero no me pueden dar exactamente lo que hicieron porque realmente no sabían (¡ay!).

De todos modos, me conecté usando la autenticación de Windows (-E switch) y ejecuté la siguiente consulta:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

La clave aquí es CHECK_POLICY = OFF . Eso hizo el truco. Espero que esto haga que 'sa' sea inmune a futuros cambios en la configuración de su dominio.

Gracias por todas sus sugerencias.

PUNTA
fuente
6

Cosas para verificar

Contraseña en cuenta SA

Modo mixto habilitado

¿La cuenta SA está deshabilitada?

Cree otra cuenta SQL y pruébela (ya que puede ingresar con -E, debería poder hacer esto)

Pruebe con una conexión ODBC, puede crear esta conexión para ver si la SA funciona

Ah, y siempre atrapa todo en Windows, reinicio (en serio, esto ayuda a mi servidor SQL de prueba después de haberle hecho cosas)

SpaceManSpiff
fuente
1

Tuve ese problema hace algunos años después de instalar un ServicePack de Windows (sin actualización de SQLServer, pero Windows), el SQLServer rechazó las conexiones, ¡hasta que también se instaló el Service Pack de SQLServer! Encontré un mensaje en el registro de eventos después de algunas horas.

Creo que hicieron esto, porque sabían que hay un gran agujero de seguridad y querían obligar a todos los administradores a instalar el paquete. Sin embargo, como es hace algún tiempo, no conozco las versiones exactas, etc. Recomendaría que verifique su registro de eventos e instale todos los paquetes de servicio más nuevos.

Tim Büthe
fuente
Esto parece prometedor, lo intentaré el lunes e informaré. Gracias por la sugerencia.
JAG
Finalmente no intenté instalar el último Service Pack. Vea mi propia "respuesta aceptada".
JAG
0

Suponiendo que tiene instalado Management Studio o Management Studio Express, ¿puede conectar Management Studio a la instancia utilizando sa?

JR

John Rennie
fuente
1
SSMS no está instalado y prefiero no instalarlo si es posible. Además, conectarse desde otra computadora con SSMS no es una opción, ya que este es un servidor del cliente. Solo las herramientas de línea de comandos están disponibles.
JAG
Si tiene Management Studio en otra PC, incluso si está en el otro extremo de una VPN, aún debería poder conectarse. El punto es verificar si hay algún problema con la configuración del servidor o si el problema radica en el comando osql.
John Rennie el
0

¿Se aseguró de reiniciar el servicio SQL Server después de realizar el cambio de registro?

David Spillett
fuente
No necesitaba cambiarlo porque tenía el valor correcto.
JAG
0

¿Alguien eliminó la base de datos que era la base de datos predeterminada para "sa"?

Si ese es el problema, intente

EXEC sp_defaultdb 'sa', 'New default database'
splattne
fuente
En teoría, solo hay una base de datos y existe. Sin embargo, no ejecuté ese comando.
JAG
Normalmente es 'maestro'. Pero creo que ese no es el problema ...
splattne
Lo acabo de probar pero no hice ninguna diferencia. Gracias de cualquier manera.
JAG
0

Si está instalando SQL Express 2014, tendrá que hacer algunas cosas para resolver este error si intenta iniciar sesión con la cuenta [sa].

  1. La cuenta "sa" se deshabilitará. Por lo tanto, deberá alternar la cuenta de deshabilitada a habilitada en la sección de estado de la cuenta.

  2. El servidor debe tener habilitada la autenticación de Windows y SQL Server. Por defecto, solo la autenticación de Windows está habilitada.

  3. Restablecer la contraseña (vea el código a continuación; ServerFault tiene un error en el que el código no aparece igual cuando se usa una lista ordenada a partir del 6/8/2016)

  4. Reinicie el servicio de Windows para SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;
MacGyver
fuente
0

A veces, el inicio de sesión está deshabilitado debido a muchas contraseñas incorrectas o cualquier violación de la política. Entonces, lo que podemos hacer es iniciar sesión con la autenticación de ventana, cambiar la contraseña y habilitar el inicio de sesión nuevamente.

Inicie sesión en la base de datos con autenticación de Windows

Ejecutar consulta:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF 
GO
ALTER LOGIN [sa] ENABLE
GO

Se requiere el uso de CHECK_POLICY ya que especifica que las políticas de contraseña de Windows de la computadora en la que se ejecuta SQL Server deben aplicarse en este inicio de sesión. El valor predeterminado es ENCENDIDO cuando hacemos APAGAR, cambiará la contraseña sin ninguna dificultad. Más tarde puedes ENCENDER

NOTA: Lo que he observado que cuando CHECK_POLICY está en la GUI, las soluciones SSME para cambiar la contraseña no funcionarán todo el tiempo. No sé la razón detrás, pero eso lo he observado.

jay patel
fuente
0

Lo resolví de la siguiente manera: inicie sesión con su autenticación de Windows, vaya a las propiedades del servidor >> Seguridad y cambie la autenticación del servidor

Preet Inder Singh
fuente
1
¿Podría gastar más en formatear (y completar) su respuesta? Como está escrito, no es de mucha ayuda.
asdmin