Строка подключения для удаленного сервера базы данных
У меня на данный момент установлено 2 сервера. Один - это веб-сервер, на котором работает Win Server 08, а другой - сервер базы данных, на котором работает SQL Server 08 на Win Server 08.
В настоящее время у меня есть настройки моего сайта, чтобы он мог читать / записывать в базу данных, используя созданную мной строку подключения с именем базы данных, ip сервера, db user и db pwd. Созданный мной пользователь db имеет "публичную" роль в базе данных (не владелец db) и может просто запускать хранимые процедуры exec. Моя строка подключения в настоящее время выглядит так:
<add name="SiteDBConn" connectionString="Server=IPOfServer;Database=DBname;User ID=userhere;Password=passhere;"/>
Хотя это работает отлично для меня, я хотел бы настроить строку подключения к базе данных, которая не содержит имени пользователя и пароля. На некоторых других моих серверах, где сервер SQL находится на том же сервере, что и веб-файлы, я могу использовать доверенное соединение и использовать встроенного пользователя "Сетевая служба" в моей базе данных. Это позволяет мне запустить строку подключения без имени пользователя и пароля, например:
<add name="SiteDBConn" connectionString="Server=localhost;Database=DBname;Trusted_Connection=Yes;"/>
Есть ли простой способ установить соединение с базой данных без жесткого кодирования имени пользователя и пароля - как в приведенной выше строке соединения - при использовании 2 разных серверов? Я трачу впустую свое время, идя по этому маршруту, видя, что созданный мной пользователь базы данных в любом случае имеет только права exec?
Спасибо за ваши мысли по этому поводу.
2 ответа
Вы не тратите свое время. Это очень хорошая практика. Когда вы разделяете IIS и SQL на разных компьютерах, вот несколько вариантов:
- Создайте пользователя asp.net как в окне IIS, так и на сервере SQL (желательно с одним и тем же паролем)
- Используйте олицетворение (измените контекст вашего сайта)
- Зашифруйте строку подключения в
реестреконфигурационным файлом и забудьте о доверенных подключениях (brrrr) - Переключите контекст asp.net на пользователя домена
- Используйте IIS6 в собственном режиме приложения
Если 2 сервера не находятся в одном домене Windows, вы не можете использовать доверенное соединение.
Кроме того, логин должен быть создан как аутентификация Windows, вы не можете использовать логин аутентификации SQL с доверенным соединением.
Иначе все, что сказал Тапори.