无法使用带有SQL身份验证的SA登录


Answers:


13

你到处看了吗?右键单击服务器,然后选择“属性”,然后选择“安全性”屏幕。

在此处输入图片说明

然后,使用Windows身份验证管理员帐户登录,并设置saSQL身份验证帐户的密码。

ALTER LOGIN sa WITH PASSWORD = 'strong password here';

谢谢队友,我选择了这个选项,当我确实登录sql身份验证模式时,我在登录名中输入sa,并将密码留空,因为我在安装过程中未提供任何密码
2014年

使用Windows身份验证登录时,需要设置sa帐户的密码。SQL Server中再也没有空白的sa密码了。
阿龙贝特朗

3

哪种身份验证模式?

您的服务器可能已配置为仅在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'

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

如果返回的值是LoginMode 1那么Windows身份验证模式已被激活。(有关如何更改此设置的更多详细信息,请参见步骤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

SQL Server管理Studio(SSMS)

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

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

2.重新启动SQL Server实例

SQL脚本

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

-- Connect to your instance
-- (Replace <instancename> with your instance's name
:connect <instancename>

-- Stop your SQL Server instance 

-- (Replace SQLSERVERAGENT with the name of your service)
!! net stop SQLSERVERAGENT
-- (Replace MSSQLServer with the name of your service)
!! net stop MSSQLServer

-- Start your SQL Server instance 

-- (Replace SQLSERVERAGENT with the name of your service)
!! net start MSSQLServer
-- (Replace SQLSERVERAGENT with the name of your service)   
!! net start SQLSERVERAGENT

:connect localhost

SQL Server管理Studio(SSMS)

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

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

3.验证设置

SQL脚本

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

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'

您应该会收到LoginMode 2

SQL Server管理Studio(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

...或通过SSMS。


-1

有时由于许多错误密码或任何违反策略的行为而禁用了登录。因此,我们可以做的就是使用窗口身份验证登录,更改密码并再次启用登录。

使用Windows身份验证登录数据库

运行查询:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

需要使用CHECK_POLICY,因为它指定应在此登录名上强制运行SQL Server的计算机的Windows密码策略。我们将其设为OFF时的默认值为ON,它将毫无困难地更改密码。稍后您可以开启

注意:我观察到,在CHECK_POLICY处于GUI上时,更改密码的SSME解决方案并非每次都有效。我没有背后的原因,但是我已经观察到了。


好杰 现在,请编辑您的答案(在图片的左侧,在左侧),并包括此附加信息。然后,您可以删除您的评论(将鼠标悬停在评论上方,并在其中显示一个圆圈),因为我将删除我的评论。
迈克尔·格林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.