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


20

我正在尝试使用以下命令登录到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”

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

Answers:


23

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

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

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


12

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

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

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

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

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

感谢您的所有建议。


6

检查事项

SA帐号密码

启用混合模式

SA帐户是否被禁用?

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

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

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


1

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

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


这看起来很有希望,我将在周一尝试并进行报告。谢谢你的建议。
JAG

最后,我没有尝试安装最新的Service Pack。请参阅我自己的“接受的答案”。
JAG

0

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

JR


1
没有安装SSMS,如果可能,我不希望安装它。此外,由于这是客户服务器,因此不能选择使用SSMS从另一台计算机进行连接。仅命令行工具可用。
JAG

如果您在另一台PC上具有Management Studio,即使它位于VPN的远端,您仍然应该能够连接。关键是要检查服务器设置是否有问题,或者问题是否出在osql命令上。
约翰·雷尼


0

是否有人删除了数据库“ sa” 的默认数据库

如果那是问题,请尝试

EXEC sp_defaultdb 'sa', 'New default database'

从理论上讲,只有一个数据库并且存在。我没有运行该命令。
JAG

通常是“主人”。但是我认为这不是问题所在……
splattne

我刚刚尝试过,但没有任何区别。不管怎么说,还是要谢谢你。
JAG

0

如果要安装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;

0

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

使用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

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


1
您能否花更多的钱来格式化(并完成)答案?撰写本文时,并没有多大帮助。
atdmin
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.