正如标题所示,我正在尝试连接到 SQL 数据库(该数据库已工作多年),但突然停止工作。我正在使用 PHP,并且创建了一个小的测试 PHP 文件,它实际上只是尝试连接。
连接时我得到的只是一个错误的对象,并且 sqlsrv_errors 不包含任何内容。 PHP 代码是:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
sqlsrv_configure("WarningsReturnAsErrors", 0);
$server = "*redacted*";
$connectionInfo = array( "database"=>"*redacted*", "UID"=>"*redacted*","PWD"=>"*redacted*");
$conn = sqlsrv_connect($server, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(),true));
} else {
print("Worked");
}
?>
我不相信任何人改变了任何东西,但我已经更新了 PHP/SQL 驱动程序版本以尝试让它工作。
我已经通过直接进入等方式检查了 SQL 登录,并且服务器正在默认端口上运行。
我得到的只是一个空白响应(假设因为 sqlsrv_errors 为空)
环境详情: Website/php 在 Windows Server 2019 上的 IIS 上运行 PHP v8.2.10、SQL 驱动程序 v5.11 (php_sqlsrv_82_nts_x64)
SQL 服务器是远程的(但在同一子网/局域网上)我已尝试通过 IP 和名称来确保它不是 dns。
添加一些我尝试过的东西:
嗯..这不是我所期望的。
原来我们已经从运行 IIS 的服务器上的计算机管理中的“用户”组中删除了“域用户”。 IIS 使用直通身份验证,所以我猜这就是原因 - 即使实际脚本使用 SQL 身份验证。
重新添加域用户组已修复该问题。