Каков наилучший способ централизовать и защитить строки подключения?

StackOverflow https://stackoverflow.com/questions/317631

Вопрос

Каков наилучший способ централизации и защиты строк соединений, используемых приложениями?В моем окружении у нас есть много внутренних приложений.Каждому приложению требуется одна или несколько строк подключения для доступа к базе данных.У нас есть цель централизовать все эти строки подключения (в частности, логины и пароли SQL), чтобы мы могли менять пароли в одном месте, а не в 35 разных файлах .config, записях реестра и т.д.

В настоящее время мы используем самодельный компонент, который извлекает информацию о строке подключения из базы данных access, это удовлетворяет требованиям централизации, но не особенно безопасно.Кроме того, у нас есть приложения, написанные на классических языках asp, vb6, delphi, c ++, .net, поэтому решение должно быть доступно всем этим приложениям.

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

Это было полезно?

Решение

Вы можете использовать сервер Windows для создания пользователей, которым разрешен доступ к вашей базе данных SQL Server. Затем вы можете использовать интегрированный вход в Windows в строке подключения.

Кстати, хранение паролей в общедоступной MDB делает их неактуальными. Так же, как они не существуют.

Другие советы

Компания, в которой я работаю, использовала аналогичную ситуацию через базу данных SQL Server.В итоге мы создали COM-совместимую .net dll, чтобы упростить и обезопасить API в базе данных и гарантировать, что одна и та же логика используется между классическими пакетами asp, .Net и DTS.Он отлично работал у нас в течение года, и, хотя многие из нас хотели бы провести с ним рефакторинг, было здорово решить такие проблемы, как миграция или переименование серверов.

Я думаю, что вы на правильном пути;однако я бы рекомендовал внести следующие изменения:

  • Попробуйте перейти на настоящий сервер базы данных.Access отлично подходит для MS Office, но не для чего-то такого масштаба.
  • Создайте административную консоль, которая позволяет проводить аудит того, кто добавляет и редактирует информацию (также убедитесь, кто имеет доступ к каким настройкам).
  • Создайте COM-совместимую библиотеку DLL, чтобы она могла использоваться другими системами безопасным и согласованным образом.

Редактировать:

Кое-что, что я заметил после многих лет работы в подобной системе, так это то, что она немного связывает вам руки при принятии некоторых решений.Существует множество инструментов (т. е.NHibernate, Elmah и т.д.в .Net world) действительно ограничены, когда строки подключения больше нет в файлах конфигурации.Многие из них могут быть легко изменены для использования вашего API;однако это то, что требует больше времени для изучения, если вы хотите его использовать.Просто к твоему сведению по этому поводу.

Разве невозможно перейти к Window Integrated Security в строках соединения, тогда вам не нужно слишком беспокоиться об аспекте безопасности (если, конечно, вам не нужно защищать фактическое местоположение соединения).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top