Курсовая работа: Политика безопасности баз данных
Правила использования меток:
субъект может читать информацию из объекта, если уровень секретности субъекта не ниже, чем у объекта, а все категории, перечисленные в метке безопасности объекта, присутствуют в метке субъекта;
субъект может записывать информацию в объект, если метка безопасности объекта совпадает (или доминирует) с меткой субъекта.
Реализация принудительного управления доступом в СУБД
Для реализации полномочного управления доступом необходимо разрабатывать
дополнительный механизм, включающий:
механизмы ограничения доступа по чтению субьектами данных таблиц с учетом имен правил управления доступом по чтению данных;
механизмы ограничения доступа по модификации субьектами данных таблиц (внесение, изменение, удаление) с учетом имен правил управления доступом по модификации данных.
В СУБД PostgreSQL вышеописанные пункты механизма можно создать через:
создание виртуальной таблицы (view), учитывающей таблицу БД, таблицу уровней доступа и имя текущего пользователя, работающего с БД;
создание правил (rules), перехватывающих операции внесения, изменения и удаления, выполняемых пользователями над таблиц БД
3.2.1 Реализация принудительного управления доступом в таблице "КЛИЕНТЫ"
Для реализации принудительного управления доступом к таблице KLIENTS со стороны пользователей и групп пользователей СУБД необходимо выполнить следующие шаги.
Шаг 1. Создать виртуальную таблицу (view), учитывающую таблицу KLIENTS, таблицу уровней доступа, имя текущего пользователя, работающего с БД, позволяющую в дальнейшем разграничить доступ пользователей к отдельным записям таблицы KLIENTS.
CREATE OR REPLACE VIEW KLIENTS_LIST AS
SELECT PERSON_ID, NAME, SEX, BIRTHDAY
FROM PG_GROUP G, PG_USER U, KLIENTS P,
GROUPS_ACCESS_LEVEL L
WHERE
USENAME = CURRENT_USER AND
U. USESYSID = ANY (G. GROLIST) AND
L. GROUP_NAME = G. GRONAME AND
P. SPOT_CONF <= L. ACCESS_LEVEL;
При создании таблицы используется:
функция CURRENT_USER, возвращающая имя текущего пользователя.
функция ANY (G. GROLIST) возвращающая любое из значений массива G. GROLIST
Шаг 2. Для того, чтобы пользователи могли работать только с виртуальной таблицей,
необходимо снять права доступа с реальной таблицы БД и установить права на чтение на виртуальную.
Снять права доступа к реальной таблицы:
REVOKE ALL ON KLIENTS FROM GROUP USERS;