Ustal, czy uwierzytelnianie w trybie mieszanym jest włączone bez logowania?

Odpowiedzi:

15

Innym podejściem jest próba zalogowania się przy użyciu uwierzytelniania SQL przy użyciu oczywiście fałszywego konta, które się nie powiedzie. Następnie możesz użyć notatnika, aby otworzyć ERRORLOGplik C:\Program Files\Microsoft SQL Server\$instance folder$\MSSQL\Log\i zobaczyć ten błąd ...

Błąd: 18456, wskaźnik ważności: 14, stan: 58 .
Logowanie nie powiodło się dla użytkownika „polly_wants_a_cracker”. Powód: Próba zalogowania przy użyciu uwierzytelniania SQL nie powiodła się. Serwer jest skonfigurowany tylko do uwierzytelniania systemu Windows.

Oznacza to , że uwierzytelnianie w trybie mieszanym nie jest włączone .

...albo ten...

Błąd: 18456, wskaźnik ważności: 14, stan: 5 .
Logowanie nie powiodło się dla użytkownika „polly_wants_a_cracker”. Powód: Nie można znaleźć loginu pasującego do podanej nazwy.

Oznacza to , że uwierzytelnianie w trybie mieszanym jest włączone .

Nie wiem, czy istnieje sposób, aby powiedzieć bez:

  • zalogowanie się pomyślnie
  • mając fizyczny dostęp do skrzynki (lub zdalnego rejestru) w celu sprawdzenia konfiguracji rejestru (jak opisuje Julien ) lub dziennika błędów dla stanu / komunikatu podczas nieudanego logowania
Aaron Bertrand
źródło
18

Możesz to sprawdzić w rejestrze:

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

Aktualny tryb jest zapisany w LoginModekluczu.

Wartości (DWORD) mogą być:

  • 1 = tryb uwierzytelniania systemu Windows
  • 2 = SQL Server i tryb uwierzytelniania systemu Windows

Uwaga:

  • 0 jest równa 2
  • Nadal potrzebujesz dostępu do rejestru (i serwera)
Julien Vavasseur
źródło
2

Możesz to również zrobić za pomocą programu PowerShell:

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

Zwróci to wynik w następujący sposób:

wprowadź opis zdjęcia tutaj

RonDBA
źródło