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

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

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

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

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

我可以使用 -E 开关正常连接。我必须补充一点,它已经工作了几个月。我想有人改变了一些东西,但我不知道是什么。

这是我尝试过的:

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

    sp_password NULL,新密码,'sa'

  • 启用“sa”登录:

    ALTER LOGIN sa ENABLE ; GO ALTER LOGIN sa WITH PASSWORD = 'newpassword' ; GO

  • 检查 Windows 注册表以确保混合身份验证已启用。值正确:登录模式=2

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

附加信息:

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

我正在使用 VNC 进行连接,因此无法使用 SSMS

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

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

答案1

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

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

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

答案2

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

似乎一周前他们使用 Windows 安全策略。他们正在添加/删除权限,但他们无法告诉我他们到底做了什么,因为他们真的不知道(哎哟!)。

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

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

关键是CHECK_POLICY=关闭。这就是诀窍。我希望这能让“sa”免受其域设置未来更改的影响。

感谢您的所有建议。

答案3

检查事项

SA 帐户密码

已启用混合模式

SA帐号被禁用了吗?

创建另一个 SQL 帐户并尝试(因为您可以使用 -E 进入,所以您应该可以做到这一点)

使用 ODBC 连接进行测试,您可以创建此连接来查看 SA 是否正常工作

哦,还有在 Windows 中总是捕获所有东西,然后重新启动(认真的说,这对我在对 SQL 服务器进行测试后有所帮助)

答案4

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

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

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

  3. 重置密码。(参见下面的代码;ServerFault 有一个错误,截至 2016 年 6 月 8 日,使用有序列表时代码不会显示相同)

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

=========

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

相关内容