¿Determinar si la autenticación en modo mixto está habilitada sin iniciar sesión?

Respuestas:

15

Otro enfoque es intentar iniciar sesión, utilizando la autenticación de SQL, con una cuenta obviamente falsa que no tendrá éxito. Luego puede usar el bloc de notas para abrir el ERRORLOGarchivo C:\Program Files\Microsoft SQL Server\$instance folder$\MSSQL\Log\y ver este error ...

Error: 18456, gravedad: 14, estado: 58 .
Error de inicio de sesión para el usuario 'polly_wants_a_cracker'. Motivo: falló un intento de inicio de sesión con autenticación de SQL. El servidor está configurado solo para la autenticación de Windows.

Esto significa que la autenticación en modo mixto no está habilitada .

...o este...

Error: 18456, gravedad: 14, estado: 5 .
Error de inicio de sesión para el usuario 'polly_wants_a_cracker'. Motivo: no se pudo encontrar un inicio de sesión que coincida con el nombre proporcionado.

Esto significa que la autenticación de modo mixto está habilitada .

No sé si posiblemente haya una manera de saberlo sin:

  • iniciar sesión con éxito
  • tener acceso físico al cuadro (o registro remoto) para verificar la configuración del registro (como describe Julien ) o el registro de errores para el estado / mensaje al iniciar sesión sin éxito
Aaron Bertrand
fuente
18

Puede verificarlo en el registro:

HKLM\Software\Microsoft\Microsoft SQL Server\ [instancename] \MSSqlServer

El modo actual se registra en la LoginModetecla.

Los valores (DWORD) pueden ser:

  • 1 = modo de autenticación de Windows
  • 2 = SQL Server y modo de autenticación de Windows

Nota:

  • 0 es equivalente a 2
  • Aún necesita acceso al Registro (y al servidor)
Julien Vavasseur
fuente
2

También puede hacer esto a través de PowerShell:

import-module sqlserver
$sqlserver = "ServerName"
$srv = Get-SqlServer -sqlserver $sqlserver
$srv.LoginMode

Esto devolverá una salida como esta:

ingrese la descripción de la imagen aquí

RonDBA
fuente