Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-03-15.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
12.65 Mб
Скачать

3.14.3. Примеры оригинальных программные средств защиты базы данных

В данном пункте приводится описание несколько упрощенного примера, разработанного автором пособия, средств защиты базы данных. Сам подход и разработанные программы и таблицы максимально унифицированы автором с целью использования их с минимальной корректировкой при разработке любых других баз данных и приложений (как это и делает автор в своих разработках, естественно, с более сложными дополнениями, например, полномочия на отдельные поля таблиц и на другие виды работ или особенностей доступа к базе данных исходя из конкретных условий и требований пользователя к базе данных).

3.14.3.1. Регистрация пользователей и установка их полномочий

Для регистрации пользователей создаются две взаимосвязанные по полю Логин таблицы Пользователи и Полномочия пользователей (рисунок 3.14.3.1.1)

Рисунок 3.14.3.1.1 – Окно конструктора таблиц

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

Использование категорий пользователя позволяет настраивать, (например, меню, ленты пользователя) интерфейс для различных групп пользователей (например, администраторов баз данных, сотрудников различных подразделений, должностей и специальностей).

Рисунок 3.14.3.1.2 – Форма для регистрации пользователей и их полномочий

Далее создает таблица параметров, в которой сохраняются значения соответствующих полей для текущего пользователя (рисунок 3.14.3.1.1).

Для авторизации создается форма с двумя кнопками (рисунок 1.14.3.1.3) и процедурами их нажатия (рисунок 1.14.3.1.4).

Рисунок 3.14.3.1.3 – Окно конструктора форм

Поля Фамилия и Категория не выводятся в форму (они предназначены только для вывода и чтения одноименных полей в таблице параметров).

Рисунок 3.14.3.1.4 – Процедуры обработки событий нажатия кнопок

В процедуре обработки нажатия кнопок происходит обращение к функции AVT в модуле Module1 (рисунок 3.14.3.1.5), которая проверяет наличие учетной записи в таблице пользователей и запоминает значения соответствующих полей в таблице параметров.

Рисунок 3.14.3.1.5 –Функция авторизации

Если логин и пароль пользователем указаны верно, то будут заполнены соответствующие поля в таблице параметров.

3.14.3.2. Формирование журнала аудита (изменений) базы данных

Часто требуется сохранение всех изменений таблиц в отдельной таблице, которую, обычно, называют журналом аудита или изменений. Это дает возможность просмотреть историю изменение таблиц (какой пользователь, когда и что корректировал для контроля или в случае обнаружения ошибок и нужно выяснить, кто допустил ошибку нечаянно или преднамеренно) и/или восстановить состояние таблиц на некоторую дату.

Для этой цели создается специальная таблица (рисунок 3.14.3.1.6).

Рисунок 3.14.3.1.6 – Окно конструктора таблицы журнала аудита

Для удобства и унификации рекомендуется в каждой таблице задавать уникальное поле № записи типа счетчик. Это позволит упростить работу с журналом и однозначно идентифицировать любую запись таблицы.

Для каждой таблицы формируется (обычно мастером) входной документ (обычно, табличный) и для соответствующих событий (рисунок 3.14.3.1.7) формируются процедуры их обработки (рисунок 3.14.3.1.8).

Рисунок 3.14.3.1.7 – Страница событий окна свойств формы

Рисунок 3.14.3.1.8 – Функции обработки событий формы

Как видно из рисунка 3.14.3.1.8 в тексте процедур есть обращения к соответствующим функциям и процедурам (рисунки 3.14.3.1.9-3.14.3.1.12) которые размещены в модуле Modul1.

Рисунок 3.14.3.1.9 – Функция определения полномочий пользователя для таблицы

Рисунок 3.14.3.1.10 – Функция чтения полномочия пользователя для таблицы

Символы “ _” являются признаком переноса текста команды на следующую строку программы.

Параметр acHidden задает режим открытия формы без вывода ее на экран (это нужно для доступа к полям таблицы параметров, которые указаны в этой форме).

Параметр dbSeeChanges в запросе необходим при работе с базой данных с СУБД SQL Server.

Параметр dbSQLPassThrough в запросе задает его тип – сквозной (передается на сервер и выполняется СУБД на сервере).

Рисунок 3.14.3.1.11 – Процедура формирования и вывода записи в журнал аудита

Рисунок 3.14.3.1.12 – Функция формирования списка значений полей записи