Я пытаюсь подключиться к MS-SQL Server из PHP-8.0 (хостинг на локальном хосте IIS-10) с помощью драйвера SQL Server для PHP, то есть SQLSRV-5.9. При подключении со страницы PHP, если я использую аутентификацию SQL Server, он сразу же подключается. Но при использовании проверки подлинности Windows в браузере выдается ошибка:
Не удалось установить соединение.
Массив ( [0] => Массив ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [код] => 18456 [2] => [Microsoft] [Драйвер ODBC 17 для SQL Server] [ SQL Server]Ошибка входа в систему для пользователя 'NT AUTHORITY\IUSR' [сообщение] => [Microsoft][ODBC Driver 17 для SQL Server][SQL Server]Ошибка входа в систему для пользователя 'NT AUTHORITY\IUSR'.) [1] => Массив ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [код] => 18456 [2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Сервер]Ошибка входа для пользователя 'NT AUTHORITY\IUSR'. [сообщение] => [Microsoft][ODBC Driver 17 для SQL Server][SQL Server]Ошибка входа для пользователя 'NT AUTHORITY\IUSR'. ))
Моя среда — Windows 10 Pro, версия 21H2, 64-разрядная версия. В моем SQL Server включены как аутентификация Windows, так и аутентификация SQL Server, и я могу подключиться к серверу, используя оба из них через SQL Server Management Studio. Итак, что мешает моему PHP-коду подключиться к серверу с использованием проверки подлинности Windows? И PHP, и SQL Sever находятся на одном ПК. Что я делаю не так? Поскольку я новичок в PHP, не могли бы вы пояснить это на простом примере?
Ниже приведен мой код connect-db.php. Обратите внимание, как я использовал строку подключения для проверки подлинности Windows и SQL Server.
?php
$serverName = "(локальный)"; // Необязательно использовать номер порта (по умолчанию 1433).
$connectionString = массив("База данных"=>"TestDB"); // Строка подключения аутентификации Windows.
// $connectionString = array("UID"=>"sa","PWD"=>"sa","Database"=>"TestDB"); // Строка подключения аутентификации SQL Server.
$conn = sqlsrv_connect($serverName, $connectionString); // Подключаемся к серверу.
если ($ конн === ложь) {
echo "Не удалось установить соединение.<br/>";
умереть (print_r (sqlsrv_errors (), правда));
} еще {
echo "Соединение успешно установлено.<br/>";
}
sqlsrv_close ($ соединение); // Закрыть ресурсы соединения.
?>
Спасибо и С уважением!