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

Laravel如何用Microsoft凭据连接SQL Server?Laravel 5怎么通过Windows身份验证连接?

在Laravel 5中通过Windows身份验证连接SQL Server

刚好之前帮团队搞定过Laravel 5对接SQL Server的Windows身份验证场景,给你梳理下亲测有效的完整步骤,连踩过的坑也一并告诉你:

1. 先搞定必要的PHP扩展

Laravel连接SQL Server依赖微软官方的PDO扩展,你需要确保以下两个扩展已经启用:

  • php_pdo_sqlsrv.dll
  • php_sqlsrv.dll

操作步骤:

  • 下载对应你PHP版本(注意区分x86/x64、线程安全与否)的扩展包
  • 把dll文件放到PHP的ext目录下
  • 打开php.ini,添加两行配置:
    extension=php_sqlsrv.dll
    extension=php_pdo_sqlsrv.dll
    
  • 重启你的Web服务器(Apache/Nginx/IIS),可以通过phpinfo()确认扩展是否加载成功

2. 配置环境变量(.env文件)

Laravel 5用.env管理环境配置,修改以下几项:

DB_CONNECTION=sqlsrv
DB_HOST=localhost  # 或者你的SQL Server主机名/IP,比如DESKTOP-XXXXXX\SQLEXPRESS
DB_DATABASE=你的数据库名称
# Windows身份验证不需要用户名密码,添加下面这行开启信任连接
DB_TRUSTED_CONNECTION=yes

注意:如果你的SQL Server是命名实例,DB_HOST要写成主机名\实例名的格式,比如DESKTOP-1234\SQLEXPRESS

3. 完善database.php配置

打开config/database.php,找到connections数组里的sqlsrv项,调整配置确保支持Windows身份验证:

'sqlsrv' => [
    'driver' => 'sqlsrv',
    'host' => env('DB_HOST', 'localhost'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', ''),  # Windows验证留空
    'password' => env('DB_PASSWORD', ''),  # Windows验证留空
    'charset' => 'utf8',
    'prefix' => '',
    'prefix_indexes' => true,
    // 新增这行,读取.env里的信任连接配置
    'trusted_connection' => env('DB_TRUSTED_CONNECTION', false),
],

4. 关键的权限注意事项(踩过的坑!)

这一步90%的新手会忽略:

  • 本地开发:运行Web服务器的进程(比如Apache的httpd.exe、IIS的应用池)要使用有SQL Server访问权限的Windows账户,本地用当前登录账户一般没问题
  • 服务器部署:一定要把Web服务器的运行身份设置为拥有目标数据库读写权限的Windows账户,不然会直接报“登录失败”的错误

5. 测试连接是否成功

打开终端进入项目根目录,执行:

php artisan tinker

然后在tinker交互环境中执行:

DB::connection()->getPdo();

如果没有抛出任何异常,说明连接已经成功建立啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:57:05