Безопасность и тиражирование БД MS Access

Содержание

Слайд 2

Способы защиты БД MS Access защита БД (mdb-файла) паролем и шифрованием;

Способы защиты БД MS Access

защита БД (mdb-файла) паролем и шифрованием;
сокрытием объектов

БД с помощью настройки параметров запуска;
защита паролем программы на языке VBA;
защита кода VBA путем создания файла без исходного кода (MDE-файл для mdb-файла или ADE-файл для adp-файла проекта);
защита БД и ее объектов на уровне пользователей.
Для многопользовательских приложений рекомендуется следующая схема защиты: серверную часть БД защищают на уровне пользователей, в клиентской части настраивают параметры запуска и создают из нее MDE-файл.

1.1. Защита БД паролем

Создать предварительно копию БД.
Команда СЕРВИС – ЗАЩИТА – ЗАДАТЬ ПАРОЛЬ БД (проверить клавишу CAPS LOCK). Снять пароль можно после открытия БД по паролю (с монопольным доступом) по команде СЕРВИС - ЗАЩИТА – УДАЛИТЬ ПАРОЛЬ БД.

1. Если БД сетевая, то открыть файл БД с монопольным доступом по команде ФАЙЛ – ОТКРЫТЬ, выделить имя БД, щелкнуть по стрелке справа от кнопки ОТКРЫТЬ и выбрать пункт МОНОПОЛЬНО

Слайд 3

1. 2. Шифрование БД При шифровании БД сжимается и делается недоступной

1. 2. Шифрование БД

При шифровании БД сжимается и делается недоступной для

чтения служебных программ или текстовых редакторов.
Чтобы зашифровать или дешифровать БД, нужно ее закрыть, выбрать пункт меню Сервис - Защита - Шифровать/дешифровать (Tools - Security - Encrypt/Decript Database). Указать шифруемый и результирующий файлы. Если БД защищена паролем, необходимо его указать при шифровании.

Примечания:
В результате редактирования БД прежняя информация становится недоступной, занимая место в файле *.mdb. Поэтому необходимо периодически сжимать БД для оптимизации ее работы. Эта операция выполняется по команде СЕРВИС – СЛУЖЕБНЫЕ ПРОГРАММЫ – СЖАТЬ И ВОССТАНОВИТЬ БД.
Можно настроить автоматическое сжатие БД при ее закрытии по команде СЕРВИС – ПАРАМЕТРЫ, вкладка ОБЩИЕ, флажок СЖИМАТЬ ПРИ ЗАКРЫТИИ.
Если удалить все данные в таблицах, то после сжатия БД поля типа СЧЕТЧИК вновь будут заполняться значениями, начиная с 1.
Для оптимизации работы БД необходимо также не использовать, по возможности, объекты типа OLE и MEMO, не использовать рисунки в качестве фона формы, сокращать длину текстовых полей, тип ДЛИННОЕ ЦЕЛОЕ менять на ЦЕЛОЕ. Значения, принятые по умолчанию для типов полей, можно менять по команде СЕРВИС – ПАРАМЕТРЫ, вкладка ТАБЛИЦЫ и ЗАПРОСЫ

Слайд 4

1. Команда СЕРВИС – ПАРАМЕТРЫ ЗАПУСКА. Убрать отметки на всех параметрах.

1. Команда СЕРВИС – ПАРАМЕТРЫ ЗАПУСКА. Убрать отметки на всех параметрах.

В интерфейсе будет скрыт конструктор, стандартное и контекстное меню, панели инструментов MS Access.
2. Заодно теперь отсутствует и возможность просмотра макросов, модулей и программного кода, встроенного на событиях форм и отчетов!
Параметры запуска и действия, которые определены в макросе с именем AutoExec или процедуре обработки события Open, можно обойти - при открытии БД удерживать клавишу SHIFT. Отключить клавишу SHIFT можно с помощью кода VBA, который задает для свойства AllowBypassKey БД значение False. Код назначить процедуре Form_Load загружаемой формы
Private Sub Form_Load()
Call SetBypassProperty
End Sub

Предварительно создайте копию БД !

2. Сокрытие конструктора приложения

Слайд 5

Sub SetBypassProperty() ‘ MSDN, топик AllowBypassKey Property Const DB_Boolean As Long

Sub SetBypassProperty() ‘ MSDN, топик AllowBypassKey Property
Const DB_Boolean As Long

= 1
ChangeProperty "AllowBypassKey", DB_Boolean, False
End Sub
Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
Exit Function
Change_Err:
If Err = conPropNotFoundError Then ' Свойство не найдено
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next ‘ Продолжить с кода, вызвавшего ошибку
Else ' Неизвестная ошибка
ChangeProperty = False
Exit Function
End If
End Function
Слайд 6

3. Защита кода VBA Предварительно создайте копию БД ! При появлении

3. Защита кода VBA

Предварительно создайте копию БД ! При появлении ошибки

в работе программного кода, откроется окно с сообщением об ошибке и редактор VBA. Необходимо поставить пароль на программный код. В редакторе VBA команда TOOLS – PROPERTIES, вкладка PROTECTIONS, установить флажок LOCK PROJECT FOR VIEWING, задать и продублировать пароль на код VBA (проверить клавишу CAPS LOCK).

Предварительно создайте копию БД ! Закрыть код VBA на формах и отчетах можно преобразовав БД в формат *.mde по команде СЕРВИС – СЛУЖЕБНЫЕ ПРОГРАММЫ – СОЗДАТЬ MDE-ФАЙЛ. При этом модули будут скомпилированы и удалены, а БД будет сжата. Программы VBA будут по-прежнему выполняться, но их нельзя будет просматривать или изменять. Если БД ссылается на другую БД, необходимо сохранить все БД, входящие в цепочку ссылок, как MDE-файлы. Однако таблицы, запросы, страницы доступа к данным и макросы можно импортировать из MDE-файла и экспортировать в БД, не являющиеся MDE-файлами.

4. Создание приложения без кода VBA (MDE-файл)

5. Защита БД и ее объектов на уровне пользователей.

Группа пользователей сети, совместно использующих одну или несколько баз данных Access, называется рабочей группой. При применении защиты на уровне пользователя каждый пользователь должен иметь свое имя и пароль. Администратор БД может снять пароль, а пользователь откроет приложение с пустым паролем и введет себе пароль. Информация о пользователях и их паролях хранится в зашифрованном виде в файле рабочей группы. Стандартный файл рабочей группы System.mdw создается при установке Access и хранится в папке (1049) с Office или в папке (1033) с личными настройками пользователя Windows.

Слайд 7

Перед защитой БД нужно разблокировать код VBA. Желательно создать новый файл

Перед защитой БД нужно разблокировать код VBA.
Желательно создать новый файл рабочей

группы по команде СЕРВИС – ЗАЩИТА – АДМИНИСТРАТОР РАБОЧИХ ГРУПП – СОЗДАТЬ. По умолчанию в файле есть группы Admins и Users и пользователь Admin, который входит в обе группы. Пользователю Admin необходимо задать пароль на вкладке СЕРВИС – ЗАЩИТА – ПОЛЬЗОВАТЕЛИ И ГРУППЫ – ИЗМЕНЕНИЕ ПАРОЛЯ, а на вкладке ПОЛЬЗОВАТЕЛИ создать пользователей, например, “inspector” и

защищенной МАСТЕРОМ БД выполняется только через помещенный на РАБОЧИЙ СТОЛ ярлык. При этом Access запускается в новой рабочей группе, созданной Мастером защиты, а открытие БД в стандартной рабочей группе невозможно.
Текущий пользователь:
MsgBox Application.Current Useг или MsgBox CurrentUser

Пользователя Admin надо оставить только в группе Users, введя вместо него в группу Admins нового пользователя.
Установить защиту можно с помощью МАСТЕРА ЗАЩИТЫ. Открытие

“rucovodstvo” (пароли они укажут сами при первом входе в БД). На вкладке СЕРВИС – ЗАЩИТА – РАЗРЕШЕНИЯ дать разрешения на доступ к объектам БД.

Слайд 8

Защита страниц доступа к данным Страница доступа к данным представляет собой

Защита страниц доступа к данным

Страница доступа к данным представляет собой

сочетание ярлыка, хранящегося в файле БД, и соответствующего файла на языке HTML, расположенного в файловой системе компьютера. Для защиты страницы доступа к данным и данных, к которым она обращается, требуется:
• защитить БД с помощью соответствующего файла рабочей группы (изменить подключение к странице можно в окне DATA LINK PROPERTIES - вкладка ALL, свойтво JET OLEDB:SYSTEM DATABASE, указать путь UNC к файлу рабочей группы в поле PROPERTY VALUE);
• запретить несанкционированный доступ со стороны программ Visual Basic с помощью параметров защиты Microsoft Internet Explorer и трехуровневого доступа к данным.

Разделение баз данных

Создать резервную копию базы данных !
Файл с таблицами можно отделить от файлов с остальными объектами и разместить на файловом сервере. При этом возможна коллективная обработка одних и тех же данных с разных рабочих мест. В файле оставшихся объектов БД будут находиться ссылки на файл с таблицами:
• СЕРВИС - СЛУЖЕБНЫЕ ПРОГРАММЫ - РАЗДЕЛЕНИЕ БД - РАЗДЕЛИТЬ;
• указать имя файла с таблицами, нажать кнопку РАЗДЕЛЕНИЕ;
В случае перемещения или переименования связанных таблиц, Диспетчер связанных таблиц помогает восстановить связи.

Слайд 9

Коллективная работа В Access существуют стандартные механизмы блокировки для поддержания общего

Коллективная работа

В Access существуют стандартные механизмы блокировки для поддержания общего

доступа к данным в сети и разрешения конфликтов, возникающих при сохранении изменений, отслеживая состояние записи во время ее правки с помощью маркера в области выделения этой записи:

При открытии БД в режиме общего доступа создается файл сведений о блокировке с расширением .LDB. Если к данным открыт общий доступ, то изменяемая запись не блокируется (“оптимистическая блокировка”) и Access предлагает:
• сохранить данный вариант записи, отказавшись от изменений, внесенных другим пользователем;
• скопировать свою, измененную запись в буфер обмена, приняв изменения, внесенные пользователем, чтобы ознакомиться с ними;
• отказаться от изменений в пользу изменений, внесенных другим пользователем.
При общем доступе с блокировкой всех записей (“пессимистическая блокировка”) Access блокирует всю форму или объект в режиме Таблица, включая базовые таблицы, на весь период их открытия.

Слайд 10

Если организован общий доступ с блокировкой изменяемой записи, Access препятствует изменению

Если организован общий доступ с блокировкой изменяемой записи, Access препятствует изменению

этой записи другими пользователями сети. Пользователь видит маркер заблокированной записи и не может войти в нее. Однако данный режим не влияет на доступ через запросы.
Уровень блокировки задается установкой или сбросом флажка БЛОКИРОКА ЗАПИСЕЙ ПРИ ОТКРЫТИИ БД с последующей перезагрузкой Access. Чтобы установить блокировку страниц, флажок снимается. При создании форм, отчетов, запросов предусмотрены возможности задания параметров режима блокировки. Блокировка записей при открытии БД не относится к запросам на изменение и к программам, выполняющим операции с использованием инструкций SQL. Для того чтобы изменения, производимые одним пользователем, становились видны другим, через определенные интервалы времени предусмотрено автоматическое обновление содержания таблиц, форм и отчетов. Значение периода обновления задается из меню СЕРВИС - ПАРАМЕТРЫ, вкладка ДРУГИЕ, поле ПЕРИОД ОБНОВЛЕНИЯ.

Организация независимой работы пользователей с одной БД без общего доступа, но с учетом всех изменений от разных пользователей, называется репликацией. Репликацией создаются копии файлов, между которыми организуется обмен обновляемыми данными или объектами (синхронизация реплик). Каждая реплика может также содержать локальные объекты.
Главную роль в наборе реплик играет основная реплика. Только в основной реплике допускается изменение структуры объектов БД и схемы данных. Вводить, обновлять и удалять данные разрешено во всех репликах набора.

Репликация

Слайд 11

Репликации подлежит БД, открытая только одним пользователем и не имеющая пароля:

Репликации подлежит БД, открытая только одним пользователем и не имеющая пароля:


• Сервис - Репликация. Закрыть БД, при необходимости создать резервную копию;
• в окне РАЗМЕЩЕНИЕ НОВОЙ РЕПЛИКИ можно задать ее приоритет и запретить удаление записей из таблиц реплики;
• если еще не было репликации БД, она преобразуется в основную реплику и будет создана еще одна реплика с указанным именем. Если БД является репликой, будет создана только новая реплика с указанным именем.
Чтобы синхронизировать пару реплик:
• открыть любую реплику, меню СЕРВИС - РЕПЛИКАЦИЯ – СИНХРОНИЗАЦИЯ, задать путь и имя реплики, которую надо синхронизировать с текущей репликой;
• если текущую реплику нужно сделать основной, установить соответствующий флажок и нажать ОК.;
В ходе синхронизации могут возникнуть конфликты - подтвердить предложение Access о его разрешении. Для проверки наличия конфликтов надо обратиться к меню СЕРВИС - РЕПЛИКАЦИЯ - УСТРАНИТЬ КОНФЛИКТЫ.
Слайд 12

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

Управление репликами

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

потеряна, переименована, удалена или перемещена, следует выбрать в наборе реплику, которую нужно сделать основной, синхронизировать ее со всеми репликами набора и обратиться к меню СЕРВИС - РЕПЛИКАЦИЯ - ВОССТАНОВИТЬ ОСНОВНУЮ РЕПЛИКУ.
В наборе не должно быть больше одной основной реплики. Чтобы одну из реплик в наборе назначить основной, следует убедиться что эта реплика и текущая основная реплика в данный момент не открыты другим пользователем, открыть ее и синхронизировать с текущей основной репликой с установкой флажка СДЕЛАТЬ ОСНОВНОЙ РЕПЛИКОЙ.
Обратное преобразование реплики в не реплицированную БД не выполняется. Для решения этой задачи следует создать новую БД и выполнить импорт в нее из реплики всех объектов, кроме таблиц. Затем создать запросы, выбирающие все записи из исходных таблиц и создающие на их основе новые таблицы. Воссоздать индексы и схему базы данных.
Реплику можно защищать на уровне пользователей, но без пароля.
Слайд 13

Найти бесплатный Access для пользователей Исполняемая версия Access

Найти бесплатный Access для пользователей

Исполняемая версия Access

Слайд 14

1. Создать и подключить к Access файл рабочей группы с помощью

1. Создать и подключить к Access файл рабочей группы с помощью

приложения Администратор рабочих групп.
2. Создать учетную запись Администратора. Для выполнения данной процедуры необходимо войти в базу данных под именем Admin. Затем выбрать команду Сервис - Защита - Пользователи и группы (Tools - Sequrity > User and Group Accounts) и создать учетную запись Администратор. Эту запись нужно добавить в группу Admins.
3. Активизировать диалоговое окно входа. Для этого выберите Сервис - Защита - Пользователи и группы (Tools - Sequrity - User and Group Accounts). Раскройте вкладку Пользователи (Users) и убедитесь, что в поле Имя (Name) выбрана стандартная учетная запись пользователя Admin. Затем раскройте вкладку Изменение пароля (Change Logon Password), введите и подтвердите новый пароль. Диалоговое окно Вход (Logon) будет выводиться на экран при запуске Access любым членом рабочей группы.

4. Изменить владельца БД и всех объектов. Для этого нужно запустить Access с использованием рабочей группы, в которую входит Администратор. При появлении диалогового окна Вход (Logon) введите имя: Администратор. Затем создайте новую базу данных. В новую базу данных нужно импортировать все объекты из исходной базы данных.
5. Создать учетные записи групп и пользователей. Далее нужно лишить прав пользователя Admin. Для этого удалите его из группы Admins, члены которой по умолчанию имеют административные права. Теперь добавьте учетные записи групп и пользователей. Для этого выберите Сервис ► Защита ► Пользователи и группы (Service ► Security ► User And Group Accounts). При добавлении учетных записей нужно вводить имя нового пользователя или группы и код.
6. Назначить права доступа к объектам. Первым делом нужно лишить группу Users всех прав, так как если этого не сделать, то каждый добавляемый пользователь будет иметь полные права на базу данных и ее объекты. Затем назначьте необходимые права группам.

Слайд 15

Рабочие группы Вид мастера создания новой рабочей группы и добавления в

Рабочие группы

Вид мастера создания новой рабочей группы и добавления в нее

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