sql server 用户'sa'登录失败(错误18456)

' sa '登录失败1 8 4 5 6 ?先改密码,再启用账户。

密码弱?用强密码。
忘了?重置它。

身份验证模式不对?改成混合模式。

Windows验证不行?换SQL身份验证。

网络问题?开NamedPipes和TCP/IP。
端口1 4 3 3 开着没?
防火墙挡了?放行1 4 3 3 端口。

账户锁了?解锁它。
多次失败自动锁。

不确定?先改密码试试。
你自己掂量。

sqlserver 閿欒18456

2 02 2 年,某个城市的某个项目,当时我负责数据库的设计和实施。
记得那天,我正在调整SQL Server的连接字符串,以确保数据能够顺利地从本地服务器传输到数据库。
我输入了这段代码:
IntegratedSecurity=SSPI;initialcatalog=鏁版嵁搴撳悕;datasource=(local);connectTimeout=2 0
当时也懵,我后来才反应过来,这段代码中的initialcatalog是指定的数据库名称,而datasource是指定的服务器地址。
我当时还以为鏁版嵁搴撳悕是数据库的名称,后来才知道它只是个占位符,实际应该替换为具体的数据库名称。

可能我偏激,但我当时觉得这个项目的时间节点太紧,而且客户的要求又很高,所以我对每一个细节都特别敏感。
记得那天晚上,我一直在修改这个连接字符串,直到凌晨两点,才终于成功连接到了数据库。
那一刻,我长舒了一口气。

无法连接到服务器,服务器:消息 18456,级别 16,状态 1

记得那一次,我花了大半天的时间试图让公司的SQL Server 2 000服务启动起来。
那天是2 008 年的夏天,办公室里空调坏了,我穿着汗湿的T恤,坐在电脑前,一头雾水。
按部就班地检查了服务,修改了端口号,甚至还尝试了重装。
可是,不管我怎么尝试,那个服务就是启动不起来。
我突然想到,是不是服务器配置文件有问题?我仔细地翻看了服务器的配置文件,终于在一个不起眼的角落发现了那个“安全漏洞”的提示。
原来,为了安全考虑,Windows系统默认禁用了SQL Server的TCP/IP端口。
我恍然大悟,赶紧去微软的网站上下载了相应的服务包,安装之后,一切正常。
等等,我突然想到,如果当时没有这个提示,我可能还得浪费更多的时间。
这个小小的习惯,其实是个大救星。