Я использую Microsoft Access 2010 с несвязанными формами. Связанные таблицы не допускаются, в противном случае строка соединений сохраняется в определениях таблиц. Следовательно, мы будем использовать определение запроса без имени для доступа к SQL SERVER. Это рекомендуется Microsoft. Нам нужно получить строку подключения откуда-то, хотя. Поэтому рекомендуется вернуть его из метода с запутанным именем. Рекомендуется не вставлять строку подключения в виде простого текста в исходный код приложения. Поэтому мы используем шифрование.
Хороший способ сделать это - потребовать, чтобы администратор приложения определил строку подключения при первом запуске приложения и в соответствии с этой статьей MSDN
... зашифруйте его значение через DPAPI с помощью пользовательского ключа учетной записи, под которым приложение запускает , и сохраните зашифрованное значение в реестре Windows.
Accde запускается из зарегистрированной учетной записи Windows, после чего администратор приложения может войти в систему и настроить соединение с базой данных, следуя приведенным выше рекомендациям.
Самая слабая ссылка, которую я сейчас вижу, - это учетная запись пользователя Windows. Кажется, что любой, кто вошел в эту учетную запись, мог расшифровать строку подключения, если бы он знал реализацию схемы безопасности. Это означает, что система все еще недостаточно безопасна.
Я мог бы создать нового пользователя Windows, но это означало бы, что пароль для этого пользователя должен храниться в безопасности, а это значит, что мы вернулись на квадрат 1, обеспечивая пароль, который используется для доступа к некоторой секретной информации.
Должен быть более простой способ, есть идеи?