строка подключения для удаленного сервера базы данных - PullRequest
5 голосов
/ 25 июня 2009

У меня на данный момент установлено 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 ]

5 голосов
/ 25 июня 2009

Вы не тратите свое время. Это очень хорошая практика. Когда вы разделяете IIS и SQL на разных компьютерах, вот несколько вариантов:

  • Создайте пользователя asp.net как в окне IIS, так и на сервере SQL (желательно с одним и тем же паролем)
  • Использовать олицетворение (изменить контекст, под которым работает ваш сайт)
  • Зашифруйте строку подключения в реестре в файле конфигурации и забудьте о доверенных соединениях (brrrr)
  • Переключить контекст asp.net на пользователя домена
  • Использовать IIS6 в режиме собственного приложения
1 голос
/ 25 июня 2009

Если два сервера не находятся в одном домене Windows, вы не можете использовать доверенное соединение.

Кроме того, логин должен быть создан как аутентификация Windows, вы не можете использовать логин аутентификации SQL с доверенным соединением.

В остальном, все, что сказал Тапори.

...