Jez Asked: 2017-01-13 06:36:50 +0800 CST2017-01-13 06:36:50 +0800 CST 2017-01-13 06:36:50 +0800 CST 确定是否在不登录的情况下启用混合模式认证? 772 SQL Server 中是否可以在不登录 SQL Server 的情况下确定是否启用混合模式身份验证? sql-server sql-server-2012 3 个回答 Voted Julien Vavasseur 2017-01-13T06:51:19+08:002017-01-13T06:51:19+08:00 您可以在注册表中检查它: HKLM\Software\Microsoft\Microsoft SQL Server\ [instancename] \MSSqlServer 当前模式记录在LoginMode键中。 值 (DWORD) 可以是: 1 = Windows 身份验证模式 2 = SQL Server 和 Windows 身份验证模式 笔记: 0相当于2 您仍然需要访问注册表(和服务器) Best Answer Aaron Bertrand 2017-01-13T07:28:52+08:002017-01-13T07:28:52+08:00 另一种方法是尝试登录,使用 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 所述)或状态/消息的错误日志 RonDBA 2017-01-20T10:49:52+08:002017-01-20T10:49:52+08:00 您也可以通过 PowerShell 执行此操作: import-module sqlserver $sqlserver = "ServerName" $srv = Get-SqlServer -sqlserver $sqlserver $srv.LoginMode 这将返回如下输出:
您可以在注册表中检查它:
当前模式记录在
LoginMode
键中。值 (DWORD) 可以是:
笔记:
0
相当于2
另一种方法是尝试登录,使用 SQL 身份验证,使用显然不会成功的虚假帐户。然后,您可以使用记事本打开
ERRORLOG
文件C:\Program Files\Microsoft SQL Server\$instance folder$\MSSQL\Log\
并查看此错误...……或者这个……
我不知道没有任何一种方法可以说:
您也可以通过 PowerShell 执行此操作:
这将返回如下输出: