You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sqlsrv_connect连接SQL Server遇证书及登录错误求助

解决sqlsrv_connect连接SQL Server的证书及登录问题

1. 正确添加SSL信任参数到PHP代码

使用sqlsrv_connect时,SSL相关参数需放在连接选项数组中,完整示例代码如下:

<?php
$serverName = "你的服务器地址,端口"; // 示例:"localhost,1433" 或 "192.168.1.100,1433"
$connectionOptions = [
    "Database" => "Ecran",
    "Uid" => "sa",
    "PWD" => "你的sa密码",
    "Encrypt" => true,
    "TrustServerCertificate" => true
];

$conn = sqlsrv_connect($serverName, $connectionOptions);

if ($conn === false) {
    die(print_r(sqlsrv_errors(), true));
}
?>
  • Encrypt=true:强制启用加密连接,符合ODBC Driver 18的默认加密要求
  • TrustServerCertificate=true:跳过证书链验证,适用于测试环境或使用自签名证书的场景(生产环境建议配置可信CA颁发的证书)

2. 解决sa登录失败及数据库无法打开问题

针对错误码28000、18456(登录失败)及4060(无法打开指定数据库),按以下步骤排查:

  • 启用混合身份验证模式:打开SQL Server Management Studio(SSMS),右键目标服务器→属性→安全性,勾选「SQL Server和Windows身份验证模式」,修改后重启SQL Server服务。
  • 检查sa账号配置:在SSMS中展开「安全性→登录名→sa」,右键属性:
    • 确认账号状态为「启用」
    • 验证密码输入正确(注意大小写)
    • 切换到「用户映射」选项卡,勾选Ecran数据库,并授予必要权限(如db_owner)
  • 确认数据库状态:检查Ecran数据库是否存在,名称拼写完全一致(SQL Server在区分大小写的排序规则下会严格匹配)。若不确定,可先连接master数据库,再执行USE Ecran;切换。
  • 远程连接配置:若连接远程服务器,需确认:
    • SQL Server配置管理器中已启用TCP/IP协议
    • 服务器防火墙开放了SQL Server使用的端口(默认1433)
  • 查看详细错误日志:在SSMS中展开「管理→SQL Server日志」,查看最新日志条目,里面会记录登录失败的具体原因(如密码错误、账号锁定、权限不足等)

内容的提问来源于stack exchange,提问作者Daniel Agra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:24:56