要实现PHP通过Windows身份验证连接SQL Server,需使用sqlsrv扩展并配置Web服务器以有权限的域账户运行,连接时省略用户名密码,利用系统安全上下文完成认证。

在Windows环境下使用PHP连接SQL Server时,如果希望避免使用用户名和密码,可以通过Windows身份验证(也称集成认证)实现安全连接。这种方法依赖于运行PHP的系统账户权限,适合内网或企业环境。
启用Windows身份验证连接MSSQL
要通过Windows认证连接MSSQL,需确保以下几点配置正确:
使用SQL Server Native Client驱动:推荐使用sqlsrv扩展而非旧版mssql扩展。微软提供的sqlsrv支持Windows身份验证。 安装php-sqlsrv扩展:从微软官方下载适用于PHP版本的sqlsrv扩展(如php_sqlsrv_80_ts.dll),并添加到php.ini中:
extension=php_sqlsrv_80_ts.dll 确保IIS或Apache以域账户运行:Web服务器(如IIS)的应用程序池身份需设置为具有MSSQL访问权限的域账户,不能使用Local System或Network Service(除非已授权)。
连接字符串配置(无需用户名密码)
使用sqlsrv_connect()函数时,连接选项中不提供UID和PWD即可启用Windows认证:
$serverName = “localhostSQLEXPRESS”; // 或IP地址+实例名
$connectionOptions = array(“Database” => “YourDB”);
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
echo “连接成功”;
上述代码利用当前执行进程的安全上下文进行认证,即“trusted connection”。
立即学习“PHP免费学习笔记(深入)”;
常见问题与解决方法
错误提示“Login failed for user ‘NT AUTHORITYANONYMOUS LOGON’”:说明存在委托问题,可能是IIS启用了匿名认证。应关闭匿名认证,开启Windows认证。 确认SQL Server允许Windows身份验证模式:在SQL Server Management Studio中,右键实例 → 属性 → 安全性,确保选择了“Windows 身份验证模式”或“混合模式”。 Kerberos双跃点限制:若Web服务器与数据库不在同一台机器,需配置Active Directory中的委派权限,否则无法传递用户凭据。基本上就这些。只要环境配置得当,PHP通过Windows认证连接MSSQL是安全且易于维护的方式。
以上就是通过Windows认证php连接mssql_设置php连接mssql的认证方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1322910.html
微信扫一扫
支付宝扫一扫