У меня есть сервер Windows 2008 R2 Datacenter с IIS 7.5, MS SQL 2012 Express, использующий PHP 5.6, пытающийся подключиться к созданной мной базе данных testDB через проверку подлинности Windows, но мне не удается это сделать.
Вот мой PHP, который я использую для подключения к своему SQL Server \ Instance:
<?php
$serverName = "nmc-intranet\intranetsql";
$connectionInfo = array("Database"=>"testDB", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if ( $conn ) {
echo "Connection successful.<br />";
} else {
echo "Connection failed.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
Когда я запускаю это, я получаю:
Ошибка подключения.Массив ([0] => Массив ([0] => 28000 [SQLSTATE] => 28000 1 => 18456 [код] => 18456 2 => [Microsoft] [Собственный клиент SQL Server 11.0] [SQL Server] Ошибка входа для пользователя «jaj». [Message] => [Microsoft] [Собственный клиент SQL Server 11.0] [SQL Server] Ошибка входа для пользователя «jaj».) 1 => Массив ([0] => 28000 [SQLSTATE] => 28000 1 => 18456 [код] => 18456 2 => [Microsoft] [SQL ServerСобственный клиент 11.0] [SQL Server] Ошибка входа для пользователя «jaj». [Message] => [Microsoft] [Собственный клиент SQL Server 11.0] [SQL Server] Ошибка входа для пользователя «jaj».))
В MS SQL я добавил имя пользователя в Security> Logins и отобразил testDB и дал схему dbo.У пользователя также есть sysadmin Server Role.Я могу подключиться к testDB через CLI SQLCMD /S nmc-intranet\intranetSQL /E /d testDB
под именем пользователя.Я также могу подключиться к серверу \ экземпляру через удаленный сеанс SSMS, поэтому я считаю, что свойства удаленного подключения правильные.Я проверил шаги, упомянутые в ответе, найденном здесь .
Для IIS я пытался установить соединение разными способами, но также безуспешно.Таким образом, я предполагал, что именно здесь моя проблема заключается в ошибке входа в систему SQL.Я изменил строку подключения через диспетчер IIS под узлом NMC-Intranet, а также узлом веб-сайта по умолчанию, и произошел сбой.Моя текущая строка подключения в web.config - это то, что было там по умолчанию после внесения изменений в IIS Manger, и выглядит следующим образом:
<connectionStrings>
<remove name="LocalSqlServer" />
<add connectionString="Server=nmc-intranet;Database=testDB;Integrated Security=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />
</connectionStrings>
Я попытался изменить ее на следующее, что я нашел здесь и до сих пор не увенчались успехом.
<connectionStrings>
<add connectionString="Server=.\SQLEXPRESS;Database=testDB;User ID=username;Password=password" name="LocalSqlServer" providerName="System.Data.SqlClient" />
</connectionStrings>
В IIS DefaultAppPool я также попытался изменить идентификатор модели процесса на имя пользователя / пароль.Я читал об аутентификации Kerberos здесь , но когда доступ к интрасети включен, он запрашивает у пользователя имя пользователя / пароль даже для просмотра домашней страницы.
Надеюсь, я спросил этовопрос правильно, как найдено здесь , так как предыдущие вопросы не были приняты.Я провел много исследований, но я не знаю, чего мне не хватает, и я сделал так много изменений и отменил их, потому что они не работали. Я просто надеюсь, что мне понадобится кое-что еще попробовать.Скорее всего, я что-то неправильно истолковал, так как у меня нет полного понимания того, как нужно устанавливать соединение, и я пропустил шаг или пропустил некоторую информацию.
Я не профессионал, просто пытаюсь собрать все этовместе из Интернета, заставьте его работать и, надеюсь, чему-нибудь научитесь.
Конец игры Я хочу, чтобы пользователи входили в Интранет через AD и загружали файлы, создавали свои собственные сообщения, создавали каталоги, которыеможно управлять через интранет, возможно иметь IM (?), и действительно просто опыт обучения.
Спасибо.