Безопасность базы данных Access 2000 - PullRequest
1 голос
/ 16 марта 2011

Я занимаюсь разработкой приложения для Windows с базой данных в Access 2000. С тех пор, как я всегда занимался разработкой, у меня мало знаний о защите базы данных. И теперь пришло время изучить это и испытать трудности.

База данных расположена в одном общем доступном месте на нашем сетевом сервере. Я хотел бы знать, как обезопасить базу данных, чтобы никто не мог открыться из этого места и при этом иметь возможность читать и записывать данные через приложение Windows.

Ответы [ 4 ]

2 голосов
/ 12 марта 2012

То, что я делал в прошлом с помощью Access 2000, - это создание внешней базы данных и внутренней базы данных.Бэкэнд будет содержать только необработанные данные.Внешний интерфейс будет содержать формы, отчеты и т. Д.

На заднем конце я бы создал форму, которая используется для отключения и включения двухпрохода клавиши Shift.Форма имеет кнопку «Включить бипасс» и кнопку «Отключить бипасс».Он также имеет текстовое поле для ввода пароля.Чтобы использовать его, вы вводите пароль и нажимаете любую кнопку.Затем настройте базу данных так, чтобы форма была указана при запуске.Пока клавиша Shift отключена, они не могут попасть в базу данных и изменить данные напрямую.

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

2 голосов
/ 17 марта 2011

Если вы хотите обеспечить безопасность данных, вам следует использовать что-то другое, кроме Jet / ACE, в качестве хранилища данных.

Ваше последнее предложение вашего вопроса совершенно неясно, но звучит противоречиво. Чтобы иметь возможность редактировать базу данных Jet / ACE, пользователь должен иметь полное разрешение CHANGE для базы данных в файловой системе. Обойти это невозможно.

Конечно, если вы используете формат MDB, вы можете использовать Jet User-Level Security, но это было взломано давно, и это займет около 10 минут, чтобы Google и купить то, что вам нужно, чтобы взломать его. Это также суетно и трудно сделать правильно (многие люди пытаются защитить свою базу данных с помощью Jet ULS и заканчивают тем, что не делают ничего, кроме усложнения, оставляя его широко открытым).

Пароли к базам данных - это залог безопасности, хотя в формате ACCDB с A2007 шифрование намного надежнее (и его уже не легко взломать). Но затем вам нужно закодировать пароль в вашем внешнем приложении, и, если вы не знаете, что делаете, это открытое приглашение для просмотра в шестнадцатеричном редакторе, чтобы найти пароль.

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

1 голос
/ 16 марта 2011

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

Недостатком является то, что защита паролем в базах данных Access не очень надежна, поэтому любой технически талантливый человек с каким-либо преступным намерением может взломать его.

1 голос
/ 16 марта 2011

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

...