用户 sa' 登录失败(错误 18456)
出现这种问题通常是因为登录服务器的用户验证过程中sa用户验证失败。 原因可能是sa用户未启动,或者sa用户安全验证失败,或者远程访问被拒绝。 。
SA设置密码,设置为符合强度要求的密码
如果是第一种,请按以下顺序设置:
具体解决方案:
首先以管理员身份打开SQL,以管理员身份进入。
然后打开“安全”--“登录名”,找到用户“sa”,打开其属性面板。
接下来,选择“常规”设置密码,然后单击“确定”保存。
然后选择“状态”——登录设置为“已启用”,点击“确定”保存。
然后打开sql 属性页,操作是“选择服务器右键-属性”,选择“安全”,选择服务器身份验证为“SQL和身份验证模式(s)”,点击“确定”保存。
最后右键服务器选择“重新启动(A)”,重新启动服务器就OK了。
然而我遇到的问题并不是这样的。 故障发生场景如下:
因为数据库需要从2008升级到2008,升级成功后发现在SSMS程序中,或者sa用户可以登录成功,但是在自己写的程序中,调用.net程序集访问数据库失败。
分析原因,可能是因为 和 的安全策略不同,对sa用户的密码强度策略要求不同,尤其是在外部使用sa用户访问数据库时,弱密码的sa用户拒绝访问登录后,根据分析,执行如下密码修改操作:
首先以管理员身份打开SQL,以管理员身份进入。
然后打开“安全”--“登录名”,找到用户“sa”,打开其属性面板。
接下来选择“常规”设置密码,设置为符合强度要求的密码,点击“确定”保存。
最后右键服务器选择“重新启动(A)”,重新启动服务器就OK了。
如果以上方法仍然不能解决问题,那么可能是远程访问被拒绝,然后执行以下操作:
打开“开始菜单”-“SQL 2008”-“配置工具”-“SQL 2008”选择“SQL网络配置”,将“命名管道状态”和“TCPIP状态”全部更改为“已启用”