Назад | Перейти на главную страницу

IIS7, SQL Server 2008 и строки подключения / проверка подлинности

Хорошо, ребята,

Моя компания размещает довольно много веб-сайтов. Все эти веб-сайты требуют подключения к SQL Server 2008.

Когда мы развертываем сайт на новом сервере, нам постоянно приходится изменять файл web.config, чтобы он содержал строку подключения с соответствующим именем пользователя и паролем. Это требует, чтобы человек, выполняющий развертывание, установил пользователя для этой базы данных со всеми соответствующими разрешениями, а затем изменил файл конфигурации.

Что я хотел бы сделать, так это вместо того, чтобы создавать пользователя для каждой базы данных, создать одного пользователя с разрешениями для каждой базы данных и не указывать имя пользователя и пароль в конфигурации. Это сэкономит много времени и, я считаю, сделает его более безопасным (клиенты имеют доступ к web.config через ftp, но во многих случаях они не нужны нам в базе данных).

Кроме того, это должно работать там, где SQL Server существует за пределами текущего домена. Похоже, это может помешать использованию встроенной безопасности Windows ...

Я никогда не использовал никаких настроек, кроме указания имени пользователя и пароля (доступ пользователя к отображенному домену Windows). Похоже, мне нужно использовать встроенную безопасность Windows, но я ничего не могу найти в MSDN для IIS 7.

Мы будем признательны за любые мысли о безопасности и настройке.

Встроенная аутентификация - это то, что вы ищете, однако это начинает усложнять, когда не в домене. Особенно когда используется Windows 2008. Ему не нравится Windows Auth между машинами, которые не находятся в домене.

Предполагая, что вы придерживаетесь встроенной аутентификации, вы можете настроить каждый сайт для работы в собственном пуле приложений и настроить каждый пул приложений для работы под собственной учетной записью, чтобы у учетных записей не было прав на другие базы данных.

Если у клиентов есть права на FTP на веб-сервер, они могут загружать файлы, которые позволят им просматривать данные других клиентов, что было бы большим запретом.

С точки зрения безопасности создание единой учетной записи - плохой план. Учетная запись для каждого клиента (Windows или SQL) - гораздо лучший план для использования.

Вы на правильном пути. То, что вы ищете, - это встроенная аутентификация. Возьмите строку подключения для встроенной аутентификации отсюда: http://www.connectionstrings.com/sql-server-2008.

В IIS7 создайте пользователя личного домена для пула приложений, в котором работает ваш сайт. Для обеспечения максимальной безопасности убедитесь, что на каждом сайте есть собственный пул приложений с настраиваемым пользователем. Обязательно предоставьте этому пользователю доступ к диску, чтобы сайт работал. Затем предоставьте этому настраиваемому пользователю доступ к базе данных (используя аутентификацию Windows). Это проще, если вы используете пользователя домена, хотя вы можете использовать локальных пользователей, если имя пользователя и пароль идентичны на серверах IIS и SQL.

По сути, это означает, что пользователь пула приложений будет тем, кто подключается к серверу sql, а не конкретным именем пользователя и паролем в строке подключения.