Можно ли в SQL Server определить, включена ли аутентификация в смешанном режиме без входа в SQL Server?
Можно ли в SQL Server определить, включена ли аутентификация в смешанном режиме без входа в SQL Server?
Другой подход - попытаться войти в систему, используя аутентификацию SQL, с явно фальшивой учетной записью, которая не будет успешной. Затем вы можете использовать блокнот, чтобы открыть ERRORLOG
файл C:\Program Files\Microsoft SQL Server\$instance folder$\MSSQL\Log\
и увидеть эту ошибку ...
Ошибка: 18456, серьезность: 14, состояние: 58 .
Не удалось войти в систему для пользователя 'polly_wants_a_cracker'. Причина: попытка входа с использованием проверки подлинности SQL не удалась. Сервер настроен только для аутентификации Windows.
Это означает, что аутентификация в смешанном режиме не включена .
... или этот ...
Ошибка: 18456, серьезность: 14, состояние: 5 .
Не удалось войти в систему для пользователя 'polly_wants_a_cracker'. Причина: не удалось найти логин, соответствующий указанному имени.
Это означает, что аутентификация в смешанном режиме включена .
Я не знаю, что, возможно, есть способ сказать без:
Вы можете проверить это в реестре:
HKLM\Software\Microsoft\Microsoft SQL Server\ [instancename] \MSSqlServer
Текущий режим записывается в LoginMode
ключ.
Значения (DWORD) могут быть:
Замечания:
0
эквивалентно 2
Вы также можете сделать это через PowerShell:
import-module sqlserver
$sqlserver = "ServerName"
$srv = Get-SqlServer -sqlserver $sqlserver
$srv.LoginMode
Это вернет вывод, как это: