AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 35505
Accepted
JAG
JAG
Asked: 2009-07-04 03:07:51 +0800 CST2009-07-04 03:07:51 +0800 CST 2009-07-04 03:07:51 +0800 CST

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

  • 772

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

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

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

附加信息:

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

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

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

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

sql-server
  • 10 10 个回答
  • 158938 Views

10 个回答

  • Voted
  1. emmanuel
    2012-06-19T10:11:15+08:002012-06-19T10:11:15+08:00

    就像@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/

    • 32
  2. Best Answer
    JAG
    2009-07-07T01:56:20+08:002009-07-07T01:56:20+08:00

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

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

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

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

    这里的关键是CHECK_POLICY=OFF。这就成功了。我希望这将使“sa”不受其域设置的未来变化的影响。

    感谢您的所有建议。

    • 14
  3. SpaceManSpiff
    2009-07-04T08:00:23+08:002009-07-04T08:00:23+08:00

    检查事项

    SA 帐户的密码

    启用混合模式

    SA 帐户是否已禁用?

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

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

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

    • 6
  4. Tim Büthe
    2009-07-04T07:59:12+08:002009-07-04T07:59:12+08:00

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

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

    • 1
  5. MacGyver
    2016-06-08T21:05:10+08:002016-06-08T21:05:10+08:00

    如果您正在安装 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;
    
    • 1
  6. John Rennie
    2009-07-04T03:21:09+08:002009-07-04T03:21:09+08:00

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

    JR

    • 0
  7. David Spillett
    2009-07-04T04:09:15+08:002009-07-04T04:09:15+08:00

    您是否确保在更改注册表后重新启动了 SQL Server 服务?

    • 0
  8. splattne
    2009-07-04T04:32:27+08:002009-07-04T04:32:27+08:00

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

    如果这是问题,请尝试

    EXEC sp_defaultdb 'sa', 'New default database'
    
    • 0
  9. jay patel
    2018-05-08T20:59:16+08:002018-05-08T20:59:16+08:00

    有时,由于许多不正确的密码或任何违反政策的行为,登录被禁用。所以我们可以做的就是用window认证登录,修改密码,重新启用登录。

    使用 Windows 身份验证登录数据库

    运行查询:

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

    需要使用 CHECK_POLICY,因为它指定运行 SQL Server 的计算机的 Windows 密码策略应在此登录时强制执行。当我们关闭时,默认为开启,它会毫无困难地更改密码。稍后您可以开启

    注意:我观察到,当 CHECK_POLICY 在 GUI SSME 上时,用于更改密码的解决方案并非每次都有效。我不知道背后的原因,但我观察到了。

    • 0
  10. Preet Inder Singh
    2019-11-02T08:32:28+08:002019-11-02T08:32:28+08:00

    我解决了它如下登录您的Windows身份验证转到服务器的属性>>安全并更改服务器身份验证

    • 0

相关问题

  • 如何从 SQL Server 2005 迁移到 2008

  • 启用 SQL 调试是否有任何风险

  • 从 SQL Server 回收内存

  • SQL Server 的廉价集群

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve