PHP PDO 连接到具有集成安全性的 SQL Server?

2021-12-26 00:00:00 php pdo sql-server

我可以使用 PDO 和使用 mssql 驱动程序的集成安全性连接到 SQL Server 2008 吗?目前正在做这样的事情来正常连接:

Can I connect to SQL Server 2008 using PDO and integrated security using the mssql driver? Currently doing something like this to connect normally:

$db = new PDO("mssql:host=host;dbname=db", "user", "pass"); 

使用 SQL Server 身份验证可以很好地工作,但是必须为大量数据库创建 SQL Server 登录名很痛苦,因此如果可能,最好使用集成安全性.我在 Windows 上将 PHP 作为 CLI 运行.

This works fine using SQL Server authentication, but it is a pain having to create SQL server logins for loads of databases, so it would be nice to use integrated security if possible. I am running PHP as CLI on Windows.

推荐答案

该站点帮助:用于 PHP 的 SQL Server 驱动程序:了解 Windows 身份验证

解决我的问题的要点是:

The gist of it that fixed my issue was:

  • 启用 Windows 身份验证
  • 禁用匿名身份验证
  • 从 PDO 连接中删除用户名和密码
$conn = new PDO( "sqlsrv:server=$serverName ; Database=$dbName" );

我的测试是使用 2010 年 6 月发布的最新驱动程序(用于 PHP 2.0 CTP2 的 SQL Server 驱动程序).

My testing was with the newest driver released June 2010 (SQL Server Driver for PHP 2.0 CTP2).

相关文章