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

JAG*_*JAG 24 sql-server

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

osql -S .\INSTANCE -U sa -P password
Run Code Online (Sandbox Code Playgroud)

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

我可以使用 -E 开关正常连接。我必须补充一点,它已经工作了几个月。我认为有人改变了一些东西,但我无法弄清楚它是什么。

这是我尝试过的:

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

    sp_password NULL,新密码,'sa'

  • 启用“sa”登录:

    更改登录 sa 启用;GO ALTER LOGIN sa WITH PASSWORD = 'newpassword' ; 走

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

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

附加信息:

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

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

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

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

小智 31

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

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

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


JAG*_*JAG 14

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

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

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

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
Run Code Online (Sandbox Code Playgroud)

这里的关键是CHECK_POLICY=OFF。这就是诀窍。我希望这将使 'sa' 不受其域设置未来变化的影响。

感谢您的所有建议。


Spa*_*iff 6

检查事项

SA 帐户的密码

启用混合模式

SA 帐户是否已禁用?

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

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

哦,总是在 Windows 中捕获所有内容,重新启动(说真的,这有助于我在完成工作后测试 SQL 服务器)