sql server需先以windows身份验证登录ssms,再通过服务器属性→安全性→启用混合模式,重启服务后执行alter login sa enable并设置强密码,同时在配置管理器中启用tcp/ip协议、配置端口并放行防火墙。

SQL Server Management Studio 里怎么改身份验证模式
SQL Server 默认装完是 Windows 身份验证模式,sa 账户被禁用,远程连不上 SQL Server 就卡在这一步。改混合模式不是点个按钮就行,得先用 Windows 身份验证登录进 SSMS,再进服务器属性里调。
- 右键已连接的服务器 → 属性 → 左侧选 安全性
- 把 服务器身份验证 改成 SQL Server 和 Windows 身份验证模式
- 点确定后会弹提示:必须重启 SQL Server 服务才生效
- 别跳过重启 —— 不重启,
sa依然无法登录,哪怕你后面激活了也没用
sa 账户为什么登录失败?常见三类原因
改完混合模式还连不上 sa,大概率掉进这三个坑里的一个:
-
sa账户被显式禁用:ALTER LOGIN sa ENABLE;必须执行(SSMS 查询窗口里运行) -
sa密码为空或太弱:SQL Server 2012+ 默认策略要求密码符合复杂度,空密码直接拒绝;设密码用ALTER LOGIN sa WITH PASSWORD = 'YourStrongPass123!'; - SQL Server 的 TCP/IP 协议没开:SQL Server 配置管理器 → SQL Server 网络配置 → MSSQLSERVER 的协议 → 把
TCP/IP设为启用,再重启服务
SQL Server 配置管理器里哪些设置直接影响 sa 连通性
很多问题其实不出在账号本身,而是底层网络和协议没配对。光开混合模式、启 sa、设密码,不碰配置管理器,照样连不上。
- 确认
TCP/IP协议已启用(不是只看“已启用”字样,要点开属性看 IP 地址页签,确保IPAll下的TCP Port有值,比如1433) - 如果改过默认端口,客户端连接字符串里必须带端口号,比如
server,14330,否则连的是默认 1433,自然失败 - Windows 防火墙要放行对应端口,
sqlservr.exe或端口都行,但只加程序不加端口,远程仍可能被拦
用 sqlcmd 测试 sa 是否真正可用
图形界面容易掩盖细节,用命令行验证最干净。别依赖 SSMS 登录框成功就以为万事大吉。
- 打开命令提示符,执行:
sqlcmd -S localhost -U sa -P "YourStrongPass123!" - 如果报错
Login failed for user 'sa',优先检查是否漏了服务重启,其次查密码是否输错(注意大小写和特殊字符) - 如果报错
Named Pipes Provider, error: 40 - Could not open a connection...,基本是 TCP/IP 没开或端口不通,跟账号无关 - 连上后立刻跑
SELECT IS_SRVROLEMEMBER('sysadmin', 'sa');,返回 1 才算真正有权限
混合模式配置真正的麻烦点不在步骤多,而在它横跨 UI、T-SQL、服务配置、网络四层,任意一层断掉,sa 就只是个名字。最容易被忽略的是服务重启和 TCP/IP 协议启用这两步,尤其在自动化部署或容器环境里,常被脚本漏掉。











