无法与Sql Server Studio连接:错误18456,状态8 - 但密码正确!


5

使用Sql Studio Express(在Windows 7-64机器上)使用Sql Server身份验证连接到三个不同的Sql Server 2005服务器,我收到错误:1846,状态:8。根据http://blogs.msdn.com /b/sql_protocols/archive/2006/02/21/536201.aspx,这应该是密码不匹配。

在此输入图像描述

然而,当我使用来自SQLCMD和基于jdbc的客户端(如Squirrel)的相同用户名和密码时,可以正常连接到所有三台服务器。我也可以使用相同的用户名和密码从带有Sql Studio Express的XP机器登录它们。当然,我有四倍检查所有正常的事情,比如我的大写锁定没有打开,我没有设置替代语言键盘,我真的在两种情况下都输入完全相同的东西,等等。

无论如何,当密码正确时,为什么我会收到密码不匹配错误?可能它与机器上不同版本的MDAC有关,如果是这样,有没有办法将Windows 7还原为旧版本的MDAC?


使用SQL Studio Express管理SQL Server 2005上的数据库?您使用的是哪个版本的SQL Studio Express?只有2005或更高版本才能连接到sql2005-Server。

@Ice--好问题。是的,不工作是安装SQL Server 2005的版本,具体版本的“Microsoft SQL Server Management Studio中快速9.00.2047.00”,从这里64位版本microsoft.com/download/en/...。在正常工作的XP机器上,它是相同的版本。
jlarson 2011年

如果您发布了一些屏幕截图,那就太好了。
KCotreau

您是否尝试过从任何其他64位客户端连接?有问题的SQL Server是64位吗?SQL Server是否完全更新?
Kirk

@Kirk - 我只试过jdbc客户端,其中没有一个明确是64位的。并且服务器不是64位,并且可能没有完全更新(但它们不在我的控制之下)。@KCotreau - 上面发布的截图
jlarson 2011年

Answers:


3

我会按照这个难度顺序尝试以下事项:

在此之前,我会尝试使用实例名称的10.19.190.x IP地址:10.19.190.x \ instance_name,也可以使用servername。我怀疑它可能是一个协议问题(下面有更多内容),这可能会改变它尝试连接的方式。

其次,它可能只是一个错误,但由于有些人正在切割和粘贴,它可能只是一个隐藏的角色。我在帖子中看到了一些人的这项工作:输入密码后,将光标移回登录框的开头,然后按Enter键/ connect。你是在复制和粘贴pw吗?

是否有任何软件防火墙?暂时禁用它们,因为可能有其他正在使用的端口被阻止。

我也一直想知道一个(SQLCMD与Studio)是通过TCP / IP连接,另一个是通过命名管道连接,导致一个安全性失败。我会检查SQL配置管理器(而不是Management Studio)以确保启用所有协议,并查看设置为首选协议的内容。启用NamedPipes和TCP,并将共享内存设置为“启用”。我强烈怀疑这一点。查看此文档:http//groups.google.com/group/microsoft.public.inetserver.iis.security/browse_thread/thread/68c216b10e7fa70/69aacf4a582ec20c%2369aacf4a582ec20c?pli=1

尝试在sa用户的属性中取消强制执行密码策略。我也强烈怀疑这一点。

尝试从提示符运行此命令:

rundll32.exe keymgr.dll,KRShowKeyMgr

如果有任何与SQL相关的条目,请删除它们。尝试手动添加SQL凭据。我已经看到了关于Vista的事情(所以我也会假设Windows 7)剥离某些安全令牌,我可以看到它在命令行被绕过了。

我还会尝试在SQL中重置sa密码,然后立即更改它。然后,如果sa帐户用于启动SQL Server,请在任何与SQL Server相关的服务中更改密码,然后重新启动它们(我尝试将它们同步以匹配)。与此相关的是这些命令:

    exec sp_password @new = 'sqlpassword', @loginame = 'sa'
    alter login sa
    with password = 'sqlpassword' unlock,
    check_policy = off,
    check_expiration = off 

另外,您是否考虑过配置登录审核?

http://msdn.microsoft.com/en-us/library/ms175850.aspx

如果这些都不起作用,那么查看用于登录SLQ管理器的SQLername以及您正在使用的SQLCMD字符串的格式将非常有用。当然,更改任何特定的,除了用户名是“sa”。还有一个问题:一个SQL服务器环境,还是多个?

我在这里找到了一些,但是我们只是想找到我认为可能相关的东西:http//blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx?PageIndex = 7条#评论


我不知道赏金发生了什么(SE bug?),但我重新添加了它。稍后我会尝试你的建议,虽然我已经尝试了KRShowKeyMgr,请参阅下面的harrymc的答案。
jlarson 2011年

不知何故错过了他的回答......过于专注于其他事情。
KCotreau

@KCotreau - 好的,谢谢你的时间。以下是一些回复:1)实例名称是什么意思(数据库名称?服务器名称?还有其他什么?我如何找到它)?2)我确定我正在输入密码(至少大部分时间),因为我可以通过其他客户端登录。我试过粘贴,打字,同样的事情.3)我相信我可以通过其他客户连接的事实可以解决软件防火墙的问题(除了内置的Windows FW,它已经适当打开,我知道没有)(续)下面)
jlarson 2011年

@KCotreau继续说道:4)我没有理由相信SQLCMD或Studio正在连接任何方式,除了TCP,一切都是默认的,我可以看到TCP流量在WireShark上流动(尽管我无法解释流),类似于何时我通过其他客户端连接5)我不允许在这些情况下修改SQL服务器设置,以便省略共享内存,修改“sa”等.6)如上所述KRShowKeyMgr无处可去7)这发生在几个SQL上服务器,并且在所有情况下基于jdbc的客户端都工作,SQL Studio没有(和完全相同的错误)。怀疑是一个工作室错误。
jlarson 2011年

好吧,不能修补,我有一种强烈的感觉,你不会解决问题,因为肯定必须做出改变。为什么不将该列表提供给IT人员,并根据它进行故障排除,也许他们可以帮助您解决问题。要回答我可以回答的一个问题:服务器名称正是它的样子......您连接的IP地址可能具有实际名称,并且当您安装SQL时,数据库在“实例”下运行。您可以通过在服务器上执行此select语句来找到此信息:select @@ servername +'\'+ @@ servicename
KCotreau

0

尝试使用命令提示符重置丢失的密码。我用它在SQL Server 2000/2005上成功重置丢失的密码。

  1. 打开命令提示符(开始 - >运行 - > cmd)
  2. 输入以下命令,然后在每行后按Enter键:

    Osql –S yourservername –E
    EXEC sp_password NULL, 'yourpassword', 'sa'
    GO
    

我没有丢失密码 - 如上所述,我可以使用相同的密码从另一台机器连接AOK,并使用不同的SQL客户端从同一台机器连接。
jlarson 2011年

0

很长一段时间,但您可能会检查Windows缓存的错误密码。

访问存储的用户名和密码与rundll32.exe

存储的用户名和密码小程序允许您分配用户名和密码,以便在需要对您当前登录的域以外的域中的服务进行身份验证时使用。

运行此applet的常规方法很难快速找到,因此这里有一种方法可以使用rundll32.exe程序使用桌面快捷方式启动它:

单击START - RUN并键入以下内容(后跟ENTER):

rundll32.exe keymgr.dll, KRShowKeyMgr

之后,你应该注销,然后再回来。


谢谢,我从来不知道这件事。但是,程序会出现一个空列表,因此不能涉及。
jlarson 2011年

您是否尝试以管理员身份运行SQL Studio?
harrymc 2011年

是的,我已经尝试过,没有运气......
jlarson 2011年

您是否可能对数据库名称和/或用户+密码存在cASe sEnsiTiVitY问题?数据库名称的错误也会记录为登录失败。
harrymc 2011年

@harrymc - 我不知道。但是我已经用数据库和用户名对这个案例进行了交叉检查,得到100%正确(以及密码,我确信我得到了正确的
答案

0

您可以尝试使用SQL Server安装介质,并在Windows 7计算机上安装正确的SQL Management Studio,看看它是否有效。

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.