我正在尝试使用以下命令login到SQL Server 2005 Express实例:
osql -S .\INSTANCE -U sa -P password
我得到错误: 用户'sa'的login失败。
我可以使用-E开关连接好。 我必须补充说它已经工作了好几个月了。 我觉得有人改变了一些东西,但是我弄不清楚是什么东西。
这是我试过的:
使用Windows身份validationlogin并更改sa密码:
sp_password NULL,newpassword,'sa'
启用“sa”login:
ALTER LOGIN sa ENABLE; 使用密码='newpassword'进行更改loginsa; 走
检查Windowsregistry以确保混合身份validation已启用。 值是正确的: LoginMode = 2
我还应该检查什么? 提前致谢。
附加信息:
这是一个Windows 2003 Server。 他们已经启用了一些密码策略,我记得我需要更改我的应用程序在将SQL Server安装到另一个更复杂的时候使用的默认“sa”密码。
我使用VNC连接,所以我不能真正使用SSMS
我的应用程序可以使用另一个SQL Serverlogin连接,但没有“sa”
最后,如果我们找不到解决scheme,我将删除此实例并重新安装,但我真的很想知道问题所在。 以防万一它再次发生,只是为了纯粹的好奇心。
就像@SpaceManSpiff所说的,不要忘记检查混合模式是否启用。 有人改变了我的设置,我也有同样的问题。 这是如何解决它:

资料来源: http : //forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/
好吧,我已经能够找出发生了什么(种),并得到了一个解决方法。
看来,一个星期前,他们正在玩 Windows安全策略。 他们正在添加/删除权限,但他们不能完全给我他们所做的,因为他们真的不知道(哎!)。
无论如何,我使用Windows身份validation(-E开关)连接并运行以下查询:
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF GO ALTER LOGIN [sa] ENABLE GO
这里的关键是CHECK_POLICY = OFF 。 这就是诀窍。 我希望这会使其对域名设置的未来变化免疫。
感谢您的所有build议。
事情要检查
SA账户的密码
启用混合模式
SA帐户是否被禁用?
创build另一个SQL帐户,并尝试它(因为你可以进入-E你应该能够做到这一点)
使用ODBC连接进行testing,可以创build此连接以查看SA是否工作
哦,总是赶上所有的窗口,重新启动(认真,这有助于我的testingSQL服务器后,我已经做了什么)
几年前,在安装Windows ServicePack(没有SQLServer更新,但是Windows),SQLServer拒绝连接之前,我有这个问题,直到SQLServer ServicePack安装也! 几个小时后,我在eventlog中发现了一条消息。
我认为他们这样做是因为他们知道存在一个很大的安全漏洞,并希望强制所有pipe理员安装该包。 不过,既然是一段时间以前,我也不是没有确切的版本,等等。 我会build议,你仔细检查你的事件日志,并安装所有/最新的服务包。
假设您安装了Management Studio或Management Studio Express,是否可以使用sa将Management Studio连接到实例?
JR
您是否确保在更改registry后重新启动了SQL Server服务?
有人删除了“sa” 默认数据库的数据库吗?
如果这是问题,请尝试
EXEC sp_defaultdb 'sa', 'New default database'
如果您正在安装SQL Express 2014,那么如果尝试使用[sa]帐户login,则必须执行一些操作来解决此错误。
“sa”帐户将被禁用。 因此,您需要在帐户的状态部分下将帐户从禁用状态切换到启用状态。
服务器必须启用windows和sql server身份validation。 默认情况下,只启用Windows身份validation。
重置密码。 (请参阅下面的代码; ServerFault有一个错误,从6/8/2016开始使用有序列表时,代码不会显示相同)
重新启动SQL Server的Windows服务
=========
ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF; ALTER LOGIN [sa] ENABLE;