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

如何在PHP7中通过Windows身份验证远程连接SQL Server?

解决PHP连接SQL Server(Windows认证)的登录失败问题

首先看你的情况,你已经能通过Windows认证(SSMS和Excel ODBC)正常访问SQL Server,但PHP代码里的配置有问题,才导致Login failed for user 'ramunasc'的错误。

问题根源

你在PHP的$connectionInfo里指定了UID参数,但Windows身份认证不需要手动传入用户名,它依赖运行PHP的进程所使用的Windows账户来完成认证。你的代码里传入UID="ramunasc",反而会让SQL Server误以为你要使用SQL Server身份验证登录,而非Windows认证,这直接导致了登录失败。

修正后的代码

把连接信息改成包含Trusted_Connection参数,去掉多余的UID:

$serverName = "MP-SQL2\SQL2008";
$connectionInfo = array( 
    "Database"=>"vordata_sql", 
    "Trusted_Connection"=>"yes"
);
/* Connect using Windows Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    echo "Unable to connect.</br>";
    die( print_r( sqlsrv_errors(), true));
}

额外需要注意的点

  • 确认运行PHP的Web服务器(比如IIS、Apache)所使用的Windows账户,是否拥有访问SQL Server和vordata_sql数据库的权限。比如IIS默认使用IIS APPPOOL\你的应用池名称这个账户,你需要在SQL Server里给这个账户分配对应的登录权限和数据库访问权限。
  • 检查你的PHP环境是否安装了正确版本的SQL Server驱动(比如ODBC Driver 11或更高版本),确保它和SQL Server 2008兼容。

这样调整后应该就能解决你的登录失败问题了,试试看!

内容的提问来源于stack exchange,提问作者Ramūnas Čepaitis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:30:24