У меня есть компьютер, A, с программой PHP, которая соединяет и управляет БД на компьютере B1. Для подключения к серверу MS SQL я использую следующий сценарий, который хорошо работает. На этом SQL-сервере есть только одна учетная запись, и она «sa».Ошибка входа для пользователя '
$server = 'WAREHOUSE1\MYDB';
$connectionInfo = array("UID" => "sa", "PWD" => "something", "Database"=>"MYDB");
$dbcMssql = sqlsrv_connect($server, $connectionInfo);
Мы получили новый компьютер, B2, чтобы заменить этот компьютер, потому что он был стар и медленно. Я настроил новую БД и восстановил ее с B1, настроил параметры брандмауэра, как в B1, проверил «разрешить удаленное соединение» и выбрал «SQL Swrver и Windows Auth. Mode» в MS SQL Server Management Studio и т. Д. Я возможность подключения к БД на компьютерах B1 и B2 с компьютера A с использованием MS SQL Server Management Studio. Я даже связал таблицы с MS Access (база данных OBDC), используя один и тот же идентификатор пользователя («sa») и пароль.
Проблема в том, что на новом компьютере B2 мой PHP-скрипт больше не работает, хотя я могу подключиться к нему с помощью программы MS SQL. Я не помню, как настраивал что-то другое, кроме того, что я уже делал, когда настраивал B1. Ошибка следующая: sqlsrv_errors()
.
[SQLSTATE] => 28000
[code] => 18456
[message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user 'sa'.
Ошибка не регистрируется по какой-либо причине в файле ERRORLOG на серверную папку какой-то причине, так что я не знаю, что от состояния ошибка. Что может быть проблемой? Я прочитал несколько статей весь этот день, но я не могу сделать эту работу! Опять же, соединение с B1 от A прекрасно, и это заставляет меня поверить, что я не установил что-то на B2. B1 и B2 имеют одинаковые версии SQL-серверов.
Является ли MYDB именем экземпляра или именем базы данных? Кроме того, вы не должны использовать 'sa' для этого; Создайте новый аккаунт. Убедитесь, что сервер базы данных принимает аутентификацию в смешанном режиме на http://msdn.microsoft.com/en-us/library/ms144284.aspx –
Я бы поставил 100 долларов США за то, что пароль для 'sa' is ...' sa' ;) – Jakub
@Jeremy Holovacs: MYBD - это имя экземпляра и имя базы данных (это не одно и то же?). Я проверил вашу ссылку, но Win7 Home не имеет secpol.msc .. не достаточно ли иметь смешанный режим проверки подлинности, установленный на SQL-сервере, хотя, как я описал в OP? – musicliftsme