无法通过 SQL 身份验证使用 SA 登录

kha*_*han 9 authentication security sql-server sql-server-2008-r2 logins

我无法使用 SQL Server 身份验证登录到 SQL Server 2008。

我只能使用 Windows 身份验证模式登录。

我在安装 SQL Server 2008 R2 时只选择了默认值。

Aar*_*and 14

你有没有看哪里?右键单击服务器并选择属性,然后选择安全屏幕。

在此处输入图片说明

然后,使用您的 Windows auth admin 帐户登录,并为saSQL auth 帐户设置密码。

ALTER LOGIN sa WITH PASSWORD = 'strong password here';
Run Code Online (Sandbox Code Playgroud)


Joh*_* N. 6

哪种认证方式?

您的服务器可能已配置为仅在Windows 身份验证模式下运行。可以通过在 SQL Server Management Studio 中打开SQL Server 实例的属性并查看“安全性”部分来检查这一点:

SSMS 安全属性

或者您可以使用 Windows 帐户登录后运行以下 SQL Server 语句:

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
Run Code Online (Sandbox Code Playgroud)

LoginMode 2如果返回的值为SQL Server 和 Windows 身份验证模式,则已激活。(有关如何更改此设置的详细信息,请参阅步骤 2。 )

如果返回的值为 则LoginMode 1Windows身份验证模式已激活。(有关如何更改此设置的更多详细信息,请参阅步骤 1) 无法使用纯 SQL Server 登录名进行登录。


第 1 步 - 更改身份验证模式

如果您的实例已配置为仅使用Windows 身份验证模式,则您必须打开SQL Server 和 Windows 身份验证模式并重新启动服务器。请按照以下简单步骤操作:

1. 更改认证方式

SQL脚本

USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
GO
Run Code Online (Sandbox Code Playgroud)

SQL Server 管理工作室 (SSMS)

将属性窗口的安全部分中的设置更改为SQL Server 和 Windows 身份验证模式

SSMS 安全属性 - SQL Server 和 Windows 身份验证模式

2. 重新启动SQL Server实例

SQL脚本

(可以通过SQLCMD模式下的SQL脚本来实现)

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
Run Code Online (Sandbox Code Playgroud)

SQL Server 管理工作室 (SSMS)

右键单击您的 SQL Server 实例,然后从上下文菜单中选择“重新启动” :

通过上下文菜单重新启动 SSMS 实例

3. 验证设置

SQL脚本

通过发出以下命令验证您的实例是否在SQL Server 和 Windows 身份验证模式下运行:

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
Run Code Online (Sandbox Code Playgroud)

您应该收到一个LoginMode 2.

SQL Server 管理工作室 (SSMS)

验证是否为SQL Server 和 Windows 身份验证模式选择了单选按钮。

SSMS 安全属性 - SQL Server 和 Windows 身份验证模式

如果您的sa帐户已被禁用,则还请按照步骤 2进行操作。否则你就完了。


步骤 2. 启用 sa 帐户

如果sa帐户已停用,只需再次启用 SQL Server 帐户即可。这可以通过以下脚本来实现:

USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD=N'<your password>'
GO
ALTER LOGIN [sa] ENABLE
GO
Run Code Online (Sandbox Code Playgroud)

...或通过 SSMS。