Я пытаюсь установить соединение с сервером MSSQL моей компании с проверкой подлинности Windows, но он терпит неудачу, поскольку он пытается использовать имя моего компьютера в качестве логина вместо моего идентификатора входа. При входе в систему с управлением MS SQL Server проверка подлинности Windows работает отлично, но не с этим кодом PHP:
<?php // Server in the this format: <computer>\<instance name> or // <server>,<port> when using a non default port number $serverName = "xxx"; $connectionInfo = array( "Database"=>"xxx"); /* Connect using Windows Authentication. */ $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } // ?>
Распечатка, которую я получаю, следующая:
[Microsoft] [Собственный клиент SQL Server 11.0] [SQL Server] Ошибка входа для пользователя «xxx \ T2002197 $». ))
T2002197 – это имя моего компьютера, а не мой идентификатор входа, поэтому, конечно, он терпит неудачу. Как я могу это решить? Я использую WAMP. Отредактировал некоторую информацию, замененную на «xxx»
Ааа проблема решена! Я изменил настройки своей службы WAMP (откройте service.msc в Windows) и убедитесь, что служба занесена в правильную учетную запись. Он работает сейчас.
В руководстве говорится, что по умолчанию соединение использует проверку подлинности Windows, а не аутентификацию SQL Server.
Чтобы обойти это, вам нужно указать параметры uid и pwd в ваших данных $connectionInfo
.
В руководствах;