Под "защитой БД" здесь понимается способ предотвратить несанкционированный доступ к информации, хранимой в таблицах. Защита исходного кода форм и модулей не рассматривается.
Актуальность данной темы чрезвычайно высока. Об этом можно судить по первому месту в рейтинге (18 тысяч обращений) статьи которую написал Юрий Шерман. Мне встретилась даже книга в 500 страниц полностью посвящённая защите Access: Garry Robinson "Real World Microsoft Access Database Protection and Security .
Данный способ защиты позволяет установить пароль на открытие БД, для всех пользователей. Для его создания необходимо открыть файл БД в "монопольном" режиме и выбрать пункт меню Сервис / Защита / Задать пароль базы данных. Для работы с такой базой данных в MS Access потребуется вводить пароль. Вот пример работы с файлом БД, используя DAO или ADO.
Public Sub TestDAO()
Dim mWS As DAO.Workspace
Dim mDB As DAO.Database
Set mWS = DBEngine.Workspaces(0)
("C:\a97.mdb", True, True, ";pwd=123")
End Sub
Public Sub TestADO()
CnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0" & _
";Data Source=C:\a97.mdb" & _
";Jet OLEDB:Database Password=123"
End Sub
Это самый не надёжный способ защиты баз данных. Существует достаточное количество бесплатных и платных утилит, отображающих пароль. В том числе доступны исходники кода на VB позволяющие прочитать такой пароль. В прочем не всё так плохо. Однажды мне встретилось оригинальная модификация этого способа защиты, о котором речь пойдёт ниже.
Данный способ позволяет ввести дополнительный уровень ограничений, связанных с работой БД Access. Основан на создании файла рабочих групп, в котором определяются имена пользователей, их пароли и права на работу с различными объектами БД.
Последовательность действий для создания защищённого файла:
Вот пример открытия БД защищённой на уровне пользователей с помощью DAO или ADO
Public Sub TestDAO()
Dim mWS As DAO.Workspace
Dim mDB As DAO.Database
DBEngine.SystemDB = "C:\test\gr.mdw"
Set mWS = DBEngine.CreateWorkspace _
("", "test_Пользователь", "test_Пароль", dbUseJet)
Set mDB = mWS.OpenDatabase _
("C:\test\a97.mdb", True)
End Sub
Public Sub TestADO()
Dim CnDB As New ADODB.Connection
CnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\test\a97.mdb;" & _
"Jet OLEDB:System database=C:\test\gr.mdw;" & _
"User ID=test_Пользователь;" & _
"Password=test_Пароль;"
End Sub
Снятие такой защиты.
Создать новую БД. В ярлыке прописать путь к этой БД, MDW файл защищённой БД имя и пароль владельца. Открыть с помощью этого ярлыка новую БД. Импортировать в неё таблицы из защищённой, после чего сменить для всех объектов БД владельца на Admin. Для того, чтобы узнать имя и пароль владельца БД можно воспользоваться специализированными программами, описанными в обзоре Пароли Access . При отсутствии файла рабочих групп его можно восстановить. Для этого потребуется узнать имена и идентификаторы владельцев объектов БД. Эта информация содержится в файле базы данных и может быть извлечена с помощью таких программ как AOPR. Используя эти данные создаётся новый файл. (последовательность описана выше)
Совсем не обязательно использовать программы, позволяющие определить пароль БД или пользователя. Часто программисты совсем не заботятся о сокрытии пароля в тексте программы. Запустив программу, работающую с защищённой БД необходимо открыть в шестнадцатеричном редакторе WinHex виртуальную память этого приложения. Проведя поиск Unicode строк "User ID="; "Password="; "Database Password=" или "pwd=" можно найти имя пользователя, его пароль и пароль базы данных.
Можно вовсе проигнорировать наличие защиты. Для этого надо воспользоваться AccessRecovery , которая создаёт новый файл без защиты и переносит в него таблицы, запросы, формы, макросы, отчеты и код модулей.
Достаточно простой способ ввести в заблуждение - изменение расширения файла БД. Увидев незнакомое расширение, не каждый попытается выяснить природу этого файла. Кроме этого появляется возможность связать это расширение с вашей программой, так чтобы при клике по файлу запускалось ваше приложение, а не Access. Желательно открывать такой файл с монопольным доступом, так как в этом случае не будет создаваться ldb файл.
В первую очередь этот способ нацелен на противодействие определению паролей с помощью специальных программ. Одна база с такой защитой хорошо попортила мне нестроение. Теперь я попорчу настроение её авторам рассказав об этой защите. Способ основан на том, что пароль БД формата Access 2000 и 2002-2003 - текстовая строка в формате Unicode. При этом, нет ни каких ограничений на её содержимое. Стандартный способ установки и использования пароля БД подразумевает его ввод с клавиатуры в диалоговом окне. Если стока пароля содержит непечатные символы, то они не будут корректно отображены программой открывающей пароли БД. С другой стороны этот пароль нельзя ввести в диалоговом окне при открытии БД в MS Access.
Но и про Access 97 я не забыл. Дело в том, что в спецификации баз данных и в справке по DAO 3.60 указано, что максимальное число символов в пароле - 14. Но на самом деле их может быть 20. При этом и сам Access 97 не допускает ввода строк пароля более 14 символов. В спецификации Access 2003 также сказано про 14 символов, но программа допускает ввод всех 20. Также возможно использование непечатных символов, что приводит большинство программ взламывающих пароли в ступор.
Для установки такого пароля потребуется использовать программу, использующую метод CompactDatabase библиотек ADOX или DAO.
Взлом защиты.
В данной работе не рассматриваются возможные манипуляции с файлами рабочих групп. Наверняка существуют способы защитить хранимые в них пароли от слишком любопытных программ, но все это теряет смысл при использовании AccessRecovery, который защиту вообще не замечает.
Способ защиты основан на модификации первых байт файла. Таким образом, перед открытием БД в её файл записывается правильный заголовок, хранимый в программе, а после закрытия возвращается неправильный. При попытке открыть файл БД с помощью ms Access появляется сообщение об ошибке. Не плохо совместить этот способ с изменением расширения файла. Например, можно взять заголовок dbf файла и записать его в начало mdb файла. Далее меняем расширение файла на dbf и наслаждаемся результатом. БД теперь можно открыть в Excel, Access или другой программой, позволяющей читать dbf файлы. Вот пример такого преобразования:
"модификация заголовка файла БД
"Ex: Call BaseProtect("C:\01.mdb", True)
Public Sub BaseProtect(sPath As String, bLock As Boolean)
Dim iFn As Integer
iFn = FreeFile()
Open sPath For Binary Access Write As #iFn
Put #iFn, 5, CStr(IIf(bLock, _
"ProtectDataBase", "Standard Jet DB"))
Close #iFn
End Sub
Метод не достаточно эффективен, так как программу, работающую с БД, можно прервать искусственно и на диске останется не защищённая БД. Поэтому стоит его использовать только в сочетании с другими способами.
Этот способ - дальнейшее развитие идеи модификации заголовка файла с целью противодействия программам, читающим пароли. Метод основан на том, что для работы с БД Access 97 и 2k программы используют разные алгоритмы чтения пароля и при этом пытаются самостоятельно определить версию mdb файла.
Для определения версии можно использовать последовательность из 40 байт, начиная с 122 от начала файла. Если в БД Access 97 вписать эту последовательность от Access 2k, то получим интересный результат. Программа ms Access, ADO и DAO нормально работают с этим файлом, а большинство взламывающих пароли программ попадаются на эту уловку. Аналогичный результат может быть получен при пересадке байтовой последовательности из Access 97 в Access 2k
Заголовок файла Access 2k
зелёным выделен фрагмент пароля БД
синим - фрагмент характерный для версии БД
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F
00000000 00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74
00000010 20 44 42 00 01 00 00 00 B5 6E 03 62 60 09 C2 55
00000020 E9 A9 67 72 40 3F 00 9C 7E 9F 90 FF 85 9A 31 C5
00000030 79 BA ED 30 BC DF CC 9D 63 D9 E4 C3 9F 46 FB 8A
00000040 BC 4E 9B 6D EC 37 40 D2 9C FA DB C8 28 E6 0E 20
00000050 8A 60 49 02 7B 36 E8 E4 DF B1 6A 62 13 43 D2 39
00000060 B1 33 29 F7 79 5B 8F 23 7C 2A 4F E9 7C 99 08 1F
00000070 98 FD DC 75 0C FF D8 FD 82 66 5F 95 F8 D0 89 24
00000080 85 67 C6 1F 27 44 D2 EE CF 65 ED FF 07 C7 46 A1
00000090 78 16 0C ED E9 2D 62 D4 54 06 00 00 34 2E 30 00
Это ещё одно подтверждение, того, что стандартные способы защиты, даже от сторонних производителей уязвимы. Речь идёт о ключах HASP. С помощью утилиты HASP Envelope можно зашифровать файл (в данном случае БД) и разрешить к нему доступ только из защищённого приложения. Используется механизм "прозрачного" шифрования. Со стартом операционной системы запускается некий процесс, который отслеживает все обращения к защищённому файлу БД. Если это обращение исходит от обычного приложения, например от ms Access - файл читается и выводится сообщение о "нераспознаваемом формате базы данных". Но если с файлом работает указанное при шифровании приложение, то данные передаются ему в дешифрованном виде. В результате, сама программа, не подозревает о наличии защиты. Да, сложность взлома такой базы возрастает в разы. Но при этом надо помнить, что с приложением должен поставляться электронный ключ, ценой N у.е. и что скорость доступа к данным падает в два - три раза.
Взлом защиты.
Было найдено два способа получить БД своё полное распоряжение.
Этот способ не плох. Во всяком случае появляется реальная надежда что то спасти. Однако есть ряд ограничений. Перед отображением данных их необходимо дешифровать. Нет возможности поиска по части строки в зашифрованном поле. Алгоритм шифрования и ключ содержатся в программе, а значит, есть потенциальная уязвимость. В данном случае надёжность зависит от устойчивости к взлому программы, работающей с БД. Можно сочетать приятное с полезным: не шифровать, а сжимать содержимое memo полей. Разбираться с алгоритмом сжатия в коде программы занятие скучное.
Перед тем как ставить вопрос о способе защиты БД стоит задуматься о её необходимости. Не стоит полагаться на стандартные методы, но это не повод для отказа от использования Access. Специалист взломает что угодно, но можно сделать, чтобы это было не так просто.
В следующей статье описано прозрачное шифрование баз данных Access, которое имеет ряд преимуществ над существующими методами.
Защита базы данных Access с помощью пароля
Самый простой способ защиты базы данных - с помощью пароля. Можно назначить пароль базе данных Access, который будет требоваться всякий раз при ее открытии.
Установка и снятие пароля защиты базы данных
Чтобы установить пароль для защиты базы данных:
Теперь база данных защищена паролем и всякий раз, когда пользователь будет открывать базу данных, будет отображаться диалоговое окно с требованием ввести пароль. Запомните или сохраните пароль в надежном месте. Если вы забудете пароль, базу данных будет невозможно открыть.
Замечание
Не защищайте базу данных паролем перед ее репликацией, иначе ее нельзя будет синхронизировать с другими репликами.
Если база данных защищена на уровне пользователей, установить пароль для ее открытия может только пользователь, обладающий административными правами. Установка
пароля не влияет на систему защиты на уровне пользователя. Эти два способа защиты могут использоваться одновременно. Пароль базы данных сохраняется в базе данных, а не в файле рабочей группы.
Чтобы удалить пароль защиты базы данных:
Установка связи с таблицами базы данных, защищенной паролем
Чтобы установить связь с таблицами базы данных, защищенной паролем, требуется ввести пароль. Если пароль был указан верно, он сохраняется вместе с другой информацией о ссылках на таблицы. После этого любой пользователь, работающий с базой данных со связанными таблицами, может открыть эти таблицы без указания пароля. Если пароль защищенной базы данных будет изменен, в следующий раз при открытии базы данных, содержащей связанные таблицы, потребуется ввести пароль.
Замечание
Microsoft Access сохраняет пароль в базе данных, содержащей связанные таблицы защищенной базы данных, в незашифрованном виде. Если это уязвляет систему защиты базы данных, не используйте средство защиты с помощью пароля. Установите систему защиты на уровне пользователей, чтобы ограничить доступ к объектам базы данных.
Администрирование баз данных Access, защищенных на уровне пользователей
В задачу администрирования базы данных, защищенной на уровне пользователей, входит выполнение следующих действий:
Внимание
Задачи
администрирования, касающиеся защиты приложения
на уровне пользователей, может выполнять только пользователь, обладающий административными правами. В Access административными правами автоматически наделяются пользователи встроенной
группы Admins. Остальным пользователям разрешено только изменять пароль своей учетной записи и получать отчет со списком пользователей и групп рабочей группы.
О том, что такое файл рабочей группы и о задачах администрирования, связанных с его использованием, рассказано в следующем разделе. О том, как изменить состав пользователей и групп пользователей приложения Access, .
Использование файла рабочей группы
Рабочей группой
в Access называется группа пользователей сети, совместно использующих одну или несколько баз данных Access. Если база данных защищена на уровне пользователей, в файл рабочей группы записываются учетные записи пользователей и групп, входящих в рабочую группу. Пароли пользователей также хранятся в файле рабочей группы. Учетным записям в рабочей группе могут быть назначены права доступа к базе данных и ее объектам (таблицам, запросам, формам, отчетам и макросам). Права
доступа сохраняются в защищенной базе данных.
Создание и подключение файла рабочей группы производится с помощью служебной программы, которая входит в состав Microsoft Access 2010 и называется Администратор рабочих групп (Workgroup Administrator). Восстановление файла рабочей группы производится путем его воссоздания по сохраненной информации.
И другие. В основном они показывают пароль длиной от 2-16 символов (зависит от версии программы). Можно было ограничиться этим ответом, но так как мы занимаемся детально вопросами программирования и защиты базы данных рассмотрим его более серьезно.
Описание алгоритма пароля для Access 2000 у меня нет, хотя кусочки информации по шифрованию Аccess 97 в англоязычном Интернете есть. Сущность информации в том, что пароль шифруется простейшим алгоритмом XOR и его смещение от начала файла = 67 байт. Но этих данных явно недостаточно для расшифровки. Поэтому, попробуем составить программу, которая сама проанализирует пароль. Сущность предложенного метода заключается в многократном сравнении файлов с паролями и без них, и поиске закономерностей. Все результаты эксперимента сохраняются в таблице и используются для анализа пароля. Примеры программ для определения пароля Access 2000 записаны в 7 примере файла: la_prot.mdb
Таким образом, мы сможем определить а) длину пароля; б) смещение пароля от начала файла; в) позицию меняющихся байтов г) маску пароля (слово для расшифровки). Используя функцию funAnalysisPassword, можно получить следующую информацию.
1. Cмещение пароля от начала файла 67 байт.
2. Маска пароля составляет 40 байт (длина пароля 20 символов)
3. Байты маски:
055 056 212 156 250 163 206
040 230 118 038 138 096 049 004 123 054
144 226 223 177 018 100 019 067 170 063
177 051 081 241 121 091 247 037 124 042
...
Байты Маски меняются в зависимости от даты, установленной на компьютере. Например, на 17.03.2001 = 228,107,236. Проверено, что 67 байт - меняется ежедневно, 68 байт - ежегодно, а 69 байт имеет еще более длительный период изменения. Байты меняются при каждом создании базы данных. Отсюда можно сделать - что это байты, которые сохраняют некоторую информацию по дате создания базы данных.
4. Алгоритм шифрования XOR.
Пример зашифровки: p XOR m = ?.
Пример расшифровки: ? XOR m = p. В примерах используются следующие обозначения: p-байт пароля базы данных, m - байт маски пароля, ? - зашифрованный байт.
5. Символы хранятся в формате UNICODE, т.е 2 байта на символ, поэтому необходимо провести конвертацию строки пароля. Это делается так: password=StrConv(s, vbFromUnicode)
Таким образом, для нахождения пароля достаточно определить байты 67-69, используя информацию из байтов 115-117. Задачка очень интересная и оригинальная, так что подумайте немного сами. В приводимых же примерах la_prot маска пароля определялась по другому, приблизительно. Для этого смотрите функцию funGetMaskPassword. Сущность метода. а) читаем дату создания файла FileDateTime(myDataBase), б) устанавливаем время Time = timeDB, в) создаем незащищенную базу и читаем маску в массив, г) возвращаем текущее время и удаляем лишние файлы.
После того как файл расшифровывался, запускалась программа для тестирования пароля. Используя эту программу, можно находить некоторые байты пароля обычным перебором символов. Код ее приведен ниже:
Public Function funTestPassword(strMdb As String, strPassword As String) As Boolean
Dim cnn As New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strMdb & ";Mode=Read;Jet OLEDB:Database Password=" & strPassword
cnn.Open
" Далее идет проверка на ошибку
PS. В примере 7 (la_prot.mdb) Вы найдете и другие функции, работающие с паролем. Использование их необязательно, т.к. если Вы знаете пароль, то его можно удалить или изменить, используя Access, но для проверки разных алгоритмов могут пригодиться.
Файл базы данных Microsoft Access, подобно другим документам Office, можно защитить с помощью пароля на открытие. Скопируйте файл BDTur_firm.mdb, с которым мы работали в первой главе, назовите его "BD_withPassword.mdb". Для установки пароля нам понадобится открыть базу в так называемом монопольном, однопользовательском режиме. Дело в том, что возможность установки пароля при одновременной работе нескольких пользователей 1Microsoft Office Access 2003 поддерживает одновременную работу 255 пользователей. приводила бы к ошибкам, поэтому MS Access не предоставляет ее. Запускаем программу, в главном меню переходим "Файл \ Открыть", переходим в нужную директорию, выделяем файл, из выпадающего списка значений кнопки "Открыть" выбираем "Монопольно" (рис. 3.6):
Появляется окно базы данных. В главном меню переходим "Сервис \ Защита \ Задать пароль базы данных", в окне "Задание пароля базы данных" вводим пароль "12345" и подтверждаем его (рис. 3.7).
Рис.
3.7.
Теперь всякий раз при открытии этого файла на любом компьютере нужно будет вводить указанный пароль (рис. 3.8).
Для изменения пароля нам потребуется удалить существующий и затем задать новый. Снова открываем базу в монопольном режиме, в главном меню переходим "Сервис \ Защита \ Удалить пароль базы данных". В появившемся окне вводим текущий пароль, после нажатия кнопки "OK" он будет удален. Для ввода нового значения опять переходим к пункту меню "Задать пароль базы данных", на этот раз введем более сложный пароль "q1w2e3r4t5y6u7i8o9p0".
Защита файла с помощью пароля - крайне ненадежный способ, его нельзя применять в реальных приложениях. Пароль хранится в открытом виде, и его очень легко вскрыть. В Интернете множество утилит, предназначенных для этого, например, Access Password Recovery Genie (http://www.lenosoft.com). После запуска этой программы выбираем файл MS Access, пароль к которому нужно подобрать, - и пароль моментально появляется в главном окне (рис. 3.9).
Далее нам снова понадобится вводить пароль - чтобы не тратить время, установите снова его значение равным "12345". Займемся теперь подключением к файлу базы данных из приложений. Конечно, вы теперь будете сомневаться, применять ли вообще задание пароля как средство безопасности, но нам в любом случае нужно научиться подключаться даже к такой, "ненадежной" базе. Создайте новый Windows-проект и назовите его "VisualBD_withPassword". Из окна Toolbox перетаскиваем на форму элемент управления DataGrid, его свойству Dock устанавливаем значение "Fill". Переходим на вкладку Data дважды щелкаем на объекте OleDbDataAdapter. В появившемся мастере настраиваем подключение к файлу BD_withPassword.mdb. Теперь в окне "Свойства связи с данными" при проверке соединения появляется сообщение об ошибке (рис. 3.10):
Исходя из текста ошибки, возникает естественное желание снять галочку "Пустой пароль" и в поле пароля ввести "12345". Но и на этот раз возникает ошибка 2Убедитесь также в том, что ваш файл базы данных не открыт в самой программе Microsoft Access. (рис. 3.11):
Дело в том, что интерфейс вкладки "Подключение" предназначен для ввода параметров учетной записи при защите на уровне пользователей. Далее мы рассмотрим ее. Здесь же снова устанавливаем галочку "Пустой пароль" и переходим на вкладку "Все". Дважды щелкаем на свойстве Jet OLEDB:Database Password (или, выделив его, нажимаем на кнопку "Изменить значение"), в появившемся окне "Изменение значения свойства" вводим пароль "12345" (рис. 3.12).
Переходим на вкладку "Подключение" - наконец нам удалось получить доступ к базе (рис. 3.13).
Нажимаем кнопку "OK" для закрытия окна "Свойства связи с данными", в следующих шагах мастера "Data Adapter Configuration Wizard" настраиваем извлечение всех записей из таблицы "Туристы". В последнем шаге мастера - включение пароля в строку connection string - выбираем кнопку "Include password"; мы будем изучать строку, сгенерированную мастером (рис. 3.14):
На панели компонент формы выделяем объект DataAdapter , переходим в его окно Properties и нажимаем на ссылку Generate dataset. Оставляем название объекта DataSet , предлагаемое по умолчанию. В конструкторе формы заполняем объект DataSet , а также определяем источник данных для элемента DataGrid :
public Form1() { InitializeComponent(); oleDbDataAdapter1.Fill(dataSet11); dataGrid1.DataSource = dataSet11.Tables.DefaultView; }
Здесь мы указываем индекс (равный нулю) единственной таблицы, находящейся в объекте DataSet .
Запускаем приложение. На форму выводятся данные из базы (
Простейшим способом защиты является установка пароля для открытия базы данных (.mdb). После установки пароля при каждом открытии базы данных будет появляться диалоговое окно, в которое требуется ввести пароль. Только те пользователи, которые введут правильный пароль, смогут открыть базу данных. Этот способ достаточно надежен (Microsoft Access шифрует пароль, поэтому к нему нет доступа при непосредственном чтении файла базы данных), но он действует только при открытии базы данных. После открытия базы данных все объекты становятся доступными для пользователя (пока не определены другие типы защиты, описанные ниже в этом разделе). Для базы данных, которая совместно используется небольшой группой пользователей или на автономном компьютере, обычно оказывается достаточно установки пароля.
Чтобы установить пароль
Чтобы снять пароль базы данных
Обратите внимание! Не используйте пароль базы данных, если предполагается выполнять репликацию базы данных. Реплицированные базы данных не могут быть синхронизированы, если установлен пароль базы данных.
Можно защитить приложение от случайного или умышленного повреждения конечными пользователями, скрыв объекты базы данных в окне базы данных. Для управления внешним видом и поведением приложения, а также защиты меню и панелей команд используйте параметры запуска приложения.
Скрытие объектов
Скрытие таблиц и связей на схеме данных
Наиболее гибкий и распространенный способ защиты базы данных называется защитой на уровне пользователей. Этот способ защиты подобен способам, используемым в большинстве сетевых систем. Двумя основными причинами использования защиты на уровне пользователей являются:
При запуске Microsoft Access от пользователя требуется идентифицировать себя и ввести пароль. Внутри файла рабочей группы пользователи идентифицируются как члены группы. Microsoft Access по умолчанию создает две группы: администраторы (группа «Admins») и пользователи (группа «Users»). Допускается также определение других групп.
Хотя установка защиты на уровне пользователей для большинства баз данных является сложной задачей, мастер защиты позволит быстро и легко защитить базу данных Access. Более того, благодаря использованию общих схем защиты, мастер позволяет уменьшить или даже вообще исключить необходимость использования команды Защита в меню Сервис.
После запуска мастера защиты могут быть назначены и удалены разрешения на доступ для пользователя и учетные записи групп в рабочей группе для базы данных и ее существующих таблиц, запросов, форм, отчетов и макросов. Также могут быть установлены разрешения на доступ, присваиваемые вновь создаваемым объектам базы данных по умолчанию.
Группам и пользователям предоставляются разрешения на доступ, определяющие возможность их доступа к каждому объекту базы данных. Например, члены группы «Users» могут иметь разрешения на просмотр, ввод или изменение данных в таблице «Клиенты», но им не будет разрешено изменять структуру этой таблицы. Группа «Users» может быть допущена только к просмотру данных в таблице, содержащей сведения о заказах, и не иметь доступа к таблице «Платежная ведомость». Члены группы «Admins» имеют разрешения на доступ ко всем объектам базы данных. Имеется возможность установить более разветвленную структуру управления, создавая собственные учетные записи групп, предоставляя этим группам соответствующие разрешения и добавляя пользователей в группы.
Если для системы защиты достаточно группы администраторов и группы пользователей, то нет необходимости создавать группы. Можно воспользоваться стандартными группами «Admins» и «Users». В этом случае необходимо присвоить соответствующие разрешения на доступ стандартной группе «Users» и добавить дополнительных администраторов в стандартную группу «Admins». Каждый новый пользователь автоматически добавляется в группу «Users». Типовые разрешения на доступ для группы «Users» могут включать «Чтение данных» и «Обновление данных» для таблиц и запросов и «Открытие/запуск» для форм и отчетов
В случае необходимости более разветвленной структуры управления для различных групп пользователей, имеется возможность создания новых групп, присвоения группам различных наборов разрешений на доступ и добавления новых пользователей в соответствующие группы. Для упрощения управления разрешениями на доступ рекомендуется присваивать разрешения на доступ только группам (а не отдельным пользователям), а затем добавлять пользователей в соответствующие группы
Примечание.
Для получения дополнительных сведений о системе защиты Microsoft Access см. Microsoft Office 2000/Visual Basic Programmer"s Guide .
Шаги мастера защиты
Защита базы данных в многопользовательской среде содержит три аспекта.
Во-первых, запрещение репликации базы данных пользователями. Репликация базы данных позволяет пользователю делать копию общей базы данных, а также добавлять поля и вносить другие изменения в текущую базу данных.
Во-вторых, запрет на установку и изменение пароля базы данных. Если на общую базу поставлен пароль, то никто другой, не зная пароля, не сможет открыть базу данных.
В-третьих, защита от изменений параметров запуска, которые определяют такие свойства, как настраиваемые меню, настраиваемые панели инструментов и стартовую форму.
Если общая база данных не имеет защиты на уровне пользователей, невозможно запретить пользователям вносить подобные изменения. Мастер защиты устанавливает для базы данных защиту на уровне пользователей, что позволяет управлять доступом к определенным средствам и определять, каким образом объекты базы данных могут быть использованы. При установке защиты на уровне пользователей пользователь или группа для репликации базы данных, установления пароля базы данных и изменения параметров запуска должны иметь такое же разрешение на доступ, как и администратор. После запуска мастера защиты только члены группы «Admins» текущей рабочей группы имеют полномочия администратора.
Если защита на уровне пользователей уже установлена и пользователь или группа имеют в настоящий момент разрешение на доступ к базе данных, соответствующее полномочиям администратора, удаление разрешения запретит пользователю или группе внесение изменений. Можно присвоить соответствующее разрешение на доступ пользователю или группе, что позволит им выполнять эти задачи. Невозможно независимо управлять доступностью каждой из задач.
Существует возможность назначить форму, которая будет выводиться на экран при открытии базы данных, запретить или разрешить настройку панелей инструментов или использование контекстных меню и задать некоторые другие параметры запуска.
Примечание.
Не следует совмещать установку в параметрах запуска формы, открывающейся при запуске приложения, и макрос autoexec на открытие формы при запуске.
Выбор параметров в диалоговом окне Параметры запуска
Иногда пользователь создает базу данных в одной версии СУБД Access, а потом возникает необходимость просмотреть ее в другой версии СУБД Access (либо созданной раньше, либо созданной позже).
При этом необходимо учитывать следующее:
Чтобы появилась возможность редактировать базу данных, надо преобразовать файл к требуемой версии СУБД Access.
Преобразование базы данных к предыдущей версии СУБД Access (понижение версии)
Преобразование базы данных к новой версии (повышение версии)
Файлы, созданные в СУБД Access 2000 открываются в СУБД Access 2003 для просмотра и редактирования.