it-swarm.cn

无法使用“ sa”帐户连接到SQL Server,我丢失了什么?

我正在尝试使用以下命令登录到SQL Server 2005 Express实例:

osql -S .\INSTANCE -U sa -P password

我收到错误消息:用户“ sa”的登录失败。

我可以使用-E开关很好地连接。我必须补充一点,它已经工作了几个月。我认为有人更改了某些内容,但我不知道是什么。

这是我尝试的:

  • 使用Windows身份验证登录并更改sa密码:

    sp_password NULL,newpassword,“ sa”

  • 启用“ sa”登录名:

    启用ALTER LOGIN;使用PASSWORD ='newpassword'进行更进一步的登录;走

  • 检查Windows注册表以确保已启用混合身份验证。该值是正确的:LoginMode = 2

我还应该检查什么?提前致谢。

附加信息:

这是Windows 2003 Server。他们启用了一些密码策略,我记得我需要在应用程序将SQL Server安装到另一个更复杂的应用程序时更改默认的“ sa”密码。

我正在使用VNC连接,所以我不能真正使用SSMS

我的应用程序可以使用另一个SQL Server登录名进行连接,但没有“ sa”

最后,如果找不到解决方案,我将删除该实例并再次安装它,但是我真的很想找出问题所在。以防万一它再次发生,只是出于好奇。

20
JAG

好的,我已经能够弄清楚发生了什么(某种)并找到了解决方法。

似乎在一周前,他们正在正在玩Windows安全策略。他们正在添加/删除权限,但是由于他们真的不知道(哎呀!),所以无法确切地告诉我他们所做的事情。

无论如何,我使用Windows身份验证(-E开关)进行连接并运行以下查询:

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

此处的键是CHECK_POLICY = OFF。那成功了。我希望这将使“ sa”不受域设置未来更改的影响。

感谢您的所有建议。

12
JAG

就像@SpaceManSpiff所说的那样,不要忘记检查是否启用了混合模式。有人为我更改了设置,但我遇到了同样的问题。解决方法如下:

  1. 使用Windows身份验证登录到MSSQL Server Management Studio。
  2. 在SQL Server Management Studio对象资源管理器中,右键单击服务器,然后单击“属性”。
  3. 在服务器属性下,选择“安全性”页面。
  4. 选择服务器身份验证为“ SQL Server和Windows身份验证模式”,然后单击“确定”。 MSSQL Server Management Database properties
  5. 重新启动SQL Services,然后尝试使用“ sa”详细信息登录。

来源: http://forums.eukhost.com/f15/login-failed-user-sa-Microsoft-sql-server-error-18456-a-12544/

24
emmanuel

检查事项

密码SA帐户

启用混合模式

SA帐户是否被禁用?

创建另一个SQL帐户并尝试(因为您可以使用-E进入,所以您应该能够执行此操作)

使用ODBC连接进行测试,您可以创建此连接以查看SA

哦,总是在Windows中捕获所有内容,然后重新启动(严重的是,这对我完成工作后的测试SQL Server有所帮助)

6
SpaceManSpiff

几年前,在安装Windows ServicePack(没有SQLServer Update,但Windows)后出现了这个问题,SQLServer拒绝了连接,直到还安装了SQLServer ServicePack!几个小时后,我在事件日志中发现了一条消息。

我认为他们是这样做的,因为他们知道安全漏洞很大,并希望强迫所有管理员安装该软件包。但是,由于它是前一段时间,所以我没有确切的版本等等。我建议您仔细检查事件日志并安装所有/最新的Service Pack。

1
Tim Büthe

如果要安装SQL Express 2014,则尝试使用[sa]帐户登录时,必须做一些事情来解决此错误。

  1. “ sa”帐户将被禁用。因此,您需要在帐户状态部分下将帐户从禁用切换为启用。

  2. 该服务器必须启用Windows和sql server身份验证。默认情况下,仅启用Windows身份验证。

  3. 重设密码。 (请参见下面的代码; ServerFault存在一个错误,该错误在使用截至2016年6月8日的有序列表时代码显示不一样)

  4. 重新启动Windows服务的SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;
1
MacGyver

我通过使用服务器的Windows身份验证转到属性>>安全并更改服务器身份验证来解决以下问题

0
Preet Inder Singh

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

使用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解决方案并非每次都有效。我没有背后的原因,但是我已经观察到了。

0
jay patel

假设您已安装Management Studio或Management Studio Express,是否可以使用sa将Management Studio连接到实例?

JR

0
John Rennie

更改注册表后,是否确定已重新启动SQL Server服务?

0
David Spillett

有人删除了“ sa”的默认数据库数据库吗?

如果那是问题,请尝试

EXEC sp_defaultdb 'sa', 'New default database'
0
splattne