Защита с помощью рабочих групп упразднена
Опытные специалисты Access, может быть, помнят, что в предыдущие версии Access
была включена гораздо более полезная форма защиты на уровне пользователя, называемая защитой с помощью рабочих групп. Программа Access хранила отдельный файл, в котором определялось, что разрешено делать с БД каждому пользователю и группе. Такую защиту легче реализовать, чем защиту на уровне файлов, и она гораздо гибче. На самом деле она представляется прекрасным решением.
К сожалению, защита с помощью рабочих групп никогда не обеспечивала настоящей защиты. Для ее преодоления могли использоваться широко доступные программистские приемы. Чаще всего это не представляло серьезной проблемы, потому что специалисты Access по-настоящему не стремились остановить умелых хакеров. Они больше заботились о сохранении контроля над обычными пользователями.
Однако в последние годы корпорация Microsoft зациклилась на безопасности. Когда она готовила к выпуску Access 2007, было решено больше не поддерживать средство безопасности, которое на самом деле ненадежно, особенно когда в других программных продуктах, например, свободно распространяемой версии SQL Server, доступны лучшие механизмы. По этой причине корпорация Microsoft отказалась от поддержки безопасности с помощью рабочих групп в файлах с расширением accdb. Это средство все еще можно применять в более старых файлах с расширением mdb, но это стоит делать, только если вам нужно сохранить поддержку БД, которую вы проектируете, старой версией программы Access. Новые файлы всегда должны создаваться в формате accdb — помимо всего прочего, Access представляет его как формат будущего для БД.
Защита паролем
Защиту БД паролем программа Access предлагает как простое, без излишеств средство защиты. Вы выбираете единый пароль для вашей БД и с этого момента ее нельзя открыть без данного пароля. Более того, данные в вашей БД шифруются с помощью ключа, который генерируется из вашего пароля. Это гарантирует невозможность извлечения каких-либо данных, даже если технически грамотные хакеры сумеют пробраться непосредственно в файл БД с помощью специализированных средств.
Примечание
В Access 2007 защита паролем стала довольно серьезной. Программа применяет искусное шифрование, не позволяющее умелым хакерам взломать ваши файлы с помощью специальных средств — по крайней мере, не посвятив решению этой задачи довольно много времени.
Применить пароль до смешного просто. Вот как это делается.
1. Выберите кнопку Office → Открыть(Office → Open).
Для применения пароля следует открыть вашу БД монопольно. Этот шаг необходим, поскольку программа Access не может шифровать БД, пока она используется кем-то.
2. Выделите файл, который хотите открыть, щелкните мышью направленную вниз стрелку на кнопке Открыть(Open) и выберите строку Монопольно(Open Exclusive).
Программа откроет БД с монопольным доступом.
3. Выберите на ленте Работа с базами данных → Работа с базами данных → Зашифровать паролем(Database Tools → Database Tools → Encrypt with Password).
Access запросит пароль (рис. 18.14).
Рис. 18.14.Для большей уверенности программа Access попросит ввести пароль дважды
4. Введите пароль и щелкните мышью кнопку ОК.
Для того чтобы защитить вашу БД как следует, необходимо выбрать усиленный пароль. Хороши длинные пароли (10 символов или больше), такие, которые нельзя найти в словарях (хакеры используют словари для запуска автоматических атак) и содержащие специальные символы (например, цифры, знаки пунктуации и другие символы). Пароль hellodata — плохой выбор, пароль w0nDER_wh@t_32 гораздо надежнее.
Программа Access применяет пароль для шифрования вашей БД и затем автоматически сохраняет ее. Теперь при следующем открытии БД прежде всего программа запросит у вас пароль.
Если позже вы решите, что вам для защиты не нужен пароль, щелкните кнопкой мыши команду на ленте Расшифровать базу данных(Remove Database Password and Encryption).
Пароли и разделенные БД
Как пароли действуют в обычных БД, абсолютно понятно, но при работе с разделенными БД есть несколько интересных особенностей. Прежде всего, пароль всегда применяется для защиты серверной БД — в конце концов, защищать нужно именно данные, а не ваши формы и отчеты. Но тут есть интересная деталь: когда создается клиентская БД, которая связана с защищенной паролем серверной БД, программа Access спокойно сохраняет пароль в клиентской части. Это означает, что пока вы используете подходящую клиентскую БД, вам вообще не нужно вводить пароль.
Примечание
Для того чтобы с успехом пользоваться паролем для серверной БД, вы должны применить пароль до того, как разделите БД. В противном случае программа Access не сохранит пароль в клиентской БД, и связанные таблицы не будут функционировать.
С технической точки зрения эта модель не обеспечивает безопасности промышленного уровня, поскольку ловкий хакер сможет украсть пароль, пробравшись в файл клиентской БД. Но до тех пор, пока вы уверены в том, что ваши клиентские БД не попадут в чужие руки, можно воспользоваться несколькими интересными возможностями.
■ Можно сохранять пароль в тайне, что помешает пользователям обращаться к серверной БД напрямую. Вместо этого они должны полагаться на предоставленную вами клиентскую БД со встроенным паролем.
■ Клиентскую БД можно защитить другим паролем. В этом случае коварный хакер, крадущий пароль вашей клиентской БД, будет все равно отрезан от БД.
■ Можно разделить серверную БД на отдельные файлы. В этом случае каждому файлу можно присвоить свой пароль и помешать доступу пользователей к неподходящим таблицам. Если у их клиентской БД нет связи с нужной серверной БД, они не смогут использовать эти таблицы.