问题
部署到云服务器的数据库,突然在本地开发时使用用EF连接、操作数据库后提示错误“用户sa 登录失败”,而部署在服务器上的程序使用同样的字符串不会提示。
解决过程
修改数据库用户信息
网上提供的方法一般都是:在数据库管理工具中配置登录名的信息,具体过程参考
用户SA登录失败(错误18456)之图文解决方法
本人根据以上步骤设置后无效!
修改系统的密码强度策略
网上有人说是因为sqlserver的连接策略中对于非本机的连接使用的操作系统中的密码强度策略,根据教程找到操作系统中的设置位置,禁用了此配置项。具体过程参考:电脑密码策略如何设置 大神教你设置电脑密码策略
本人根据以上步骤设置后无效!
有效解决方法
后来猜测是否和连接字符串有关,没有读取到登录的密码字段,就将连接字符串改为了另一种写法,如下
server=xxxx;initial catalog=数据库名称;uid=sa;password=xxxx;MultipleActiveResultSets=true;
之前的字符串如下:
Server=xxxx;Database=数据库名称;User=sa;Password=xxxx;MultipleActiveResultSets=True;
结语
目前不知为何本地需要更改字符串才能正常连接,探索出原因后再来更新吧!
本人也花了许久才解决这个问题,希望能帮到遇到同样问题的coder。