как подключиться к MS SQL из IIS, когда оба находятся на разных машинах.
MS SQL настроен на проверку подлинности Windows.
Я собираюсь:
Ошибка входа для пользователя ''. Пользователь не связан с доверенным соединением SQL Server. Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.
Exception Details: System.Data.SqlClient.SqlException: Login failed for user ''. The user is not associated with a trusted SQL Server connection.
Как правильно настроить аутентификацию?
Кого вы хотите аутентифицировать на SQL Server? Удостоверение пула приложений IIS или удостоверение пользователя веб-клиента? Другими словами, вы олицетворяете себя в IIS / ASP? И когда вы говорите «IIS», вы действительно имеете в виду некую форму пула процессов / приложений ASP / ASP.Net, верно?
Если вы не олицетворяете себя, SQL аутентифицирует ваш пул приложений. Если ваш пул приложений работает как пользователь домена, это будет этот домен suer. Если пул приложений работает как сетевая служба или LocalSystem, тогда это будет идентификатор узла (домен \ hostname $ account). Если пул приложений работает как локальный пользователь или локальная служба, он не поддерживается, и вы должны использовать одно поддерживаемое удостоверение.
Если вы олицетворяете себя, вы фактически делегируете удостоверение пользователя клиента, и для этого вам необходимо включить IIS / ASP для ограниченного делегирования. Существует множество литературы, как это сделать:
Конечно, и IIS, и SQL Server должны состоять из нескольких доменов с существующими доверительными отношениями между ними, в противном случае аутентификация невозможна (трюк с идентичным пользователем / паролем - ужасный взлом).
Как только вы выясните, к кому именно приведет проверка подлинности, вы можете предпринять шаги, разрешающие авторизацию внутри SQL Server, которые являются обычными шагами (создать логин, предоставить соответствующие права, создать пользователя, предоставить соответствующие права).
В качестве побочного примечания код не должен позволять исключениям оставаться без обработки. Возможно, пришло время для ELMAH?
В зависимости от версии SQL Server на этот раз вы могли пропустить включение удаленных подключений: http://support.microsoft.com/kb/914277.
Кроме того, вместо тестирования с вашим приложением вы должны тестировать с помощью Management Studio или Management Studio Express. Ваше приложение на данный момент просто добавляет еще один переменный фактор в уравнение, поэтому для начала нам нужно установить, что вы можете успешно подключиться с удаленной машины, используя что-то, что хорошо известно. Как только это будет подтверждено, мы сможем вернуть IIS в дело и заняться этим с этой стороны.
Я думаю, это зависит от того, на каком языке вы написали свое веб-приложение. Есть ли в нем документация по методам доступа к данным, таким как ADO или что-то подобное?
Я создал пользователя на обеих машинах с тем же именем. Настройте пул IIS для запуска этим пользователем и назначьте пользователя группе SQL на другом сервере.
Помогло пока.