确定是否在不登录的情况下启用混合模式身份验证?

Jez*_*Jez 12 authentication security sql-server sql-server-2012 logins

在 SQL Server 中是否可以在不登录 SQL Server 的情况下确定是否启用了混合模式身份验证?

Jul*_*eur 18

您可以在注册表中检查它:

HKLM\Software\Microsoft\Microsoft SQL Server\ [instancename] \MSSqlServer
Run Code Online (Sandbox Code Playgroud)

当前模式记录在LoginMode键中。

值 (DWORD) 可以是:

  • 1 = Windows 身份验证模式
  • 2 = SQL Server 和 Windows 身份验证模式

笔记:

  • 0 相当于 2
  • 您仍然需要访问注册表(和服务器)


Aar*_*and 15

另一种方法是尝试登录,使用 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”登录失败。原因:找不到与提供的名称匹配的登录名。

这意味着启用了混合模式身份验证

我不知道可能有一种方法可以在没有两者的情况下进行判断:

  • 登录成功
  • 具有对框(或远程注册表)的物理访问权限,以便在登录失败时检查注册表配置(如Julien 所述)或状态/消息的错误日志