CREATE SCHEMA OPER;
‘Для включения пользователя в схему используется команда:
ALTER SCHEMA OPER OWNER TO SALMIN;
ALTER SCHEMA OPER OWNER TO DJAVR;
ALTER SCHEMA OPER OWNER TO KIRICH;
‘выполнении запросов к схеме:
SELECT FROM OPER. SALMIN;
SELECT FROM OPER. DJAVR;
SELECT FROM OPER. KIRICH;
‘установления порядка доступа к схемe
SET SEARCH_PATH TO public;
SET SEARCH_PATH TO oper, public;
Создание схемы для работников филиала
CREATE SCHEMA WORKER;
‘Для включения пользователя в схему используется команда:
ALTER SCHEMA WORKER OWNER TO MANKO;
ALTER SCHEMA WORKER OWNER TOYANOVSKIY;
‘выполнении запросов к схеме:
SELECT FROM WORKER. MANKO;
SELECT FROM WORKER. YANOVSKIY;
‘установления порядка доступа к схемe
SET SEARCH_PATH TO public;
SET SEARCH_PATH TO worker, public;
3. Реализация требований стандарта по критерию "Политика безопасности"
Политика безопасности - набор законов, правил и норм поведения, определяющих, как организация обрабатывает, защищает и распространяет информацию.
Политика безопасности должна включать в себя по крайней мере следующие элементы: произвольное управление доступом, безопасность повторного использования объектов, метки безопасности, принудительное управление доступом.
С точки зрения работы СУБД рассмотрим три элемента:
произвольное управление доступом;
метки безопасности;
принудительное управление доступом.
Описание концепции использования меток безопасности
Полномочное (принудительное) управление доступом в промышленных СУБД не реализовано на уровне ядра управления. Но в СУБД присутствуют программные средства для программирования такого управления.
Для реализации полномочного управления доступом с субъектами и объектами ассоциируются метки безопасности. Метка субъекта описывает его благонадежность, метка объекта - степень закрытости содержащейся в нем информации.
Метки безопасности состоят из двух частей - уровня секретности и списка категорий. Уровни секретности, поддерживаемые системой, образуют упорядоченное множество, которое может выглядеть, например, так: совершенно секретно, секретно, конфиденциально, несекретно.
Категории образуют неупорядоченный набор. Их назначение - описать предметную область, к которой относятся данные. В военном окружении каждая категория может соответствовать, например, определенному виду вооружений.
Главная проблема, которую необходимо решать в связи с метками, это обеспечение их целостности:
не должно быть непомеченных субъектов и объектов, иначе в меточной безопасности появятся легко используемые бреши;
при любых операциях с данными метки должны оставаться правильными.
Управление метками безопасности в СУБД
Для реализации полномочного управления доступом необходимо разрабатывать
дополнительный механизм, включающий:
дополнительные структуры данных, хранящие значение меток конфиденциальности обьектов БД (записей таблиц или их отдельных атрибутов);
дополнительные структуры данных, хранящие значение уровней доступа субьектов БД (пользователей или их групп);
В СУБД PostgreSQL вышеописанные пункты механизма можно создать через:
добавление поля таблицы, содержащего значения метки конфиденциальности
создание таблицы уровней доступа с двумя полями: имя группы или пользователя, уровень доступа.
Создания механизма по управлению метками в СУБД
Таблица с информацией о клиентах
CREATE SEQUENCE KLIENTS_ID;
CREATE TABLE KLIENTS (KLIENTS_ID INTEGER NOT NULL PRIMARY KEY DEFAULT NEXTVAL ('KLIENTS_ID'),
NAME VARCHAR (30),
SEX CHAR (1),
BIRTHDAY DATE,
CONSTRAINT VALID_SEX CHECK (SEX IN ('Ж','М',’ФИРМА’)));
COMMENT ON TABLE PERSONS IS
'ТАБЛИЦА ИНФОРМАЦИИ О КЛИЕНТАХ;
Для создания механизма управления метками при доступе пользователей и групп пользователей к таблице persons выполним следующую последовательность шагов.
Шаг 1. Создать справочник уровней доступа с помощью команды, пример которой представлен ниже.
CREATE TABLE ACCESS_LEVELS (ACCESS_LEVEL_ID INTEGER PRIMARY KEY,
ACCESS_LEVELVARCHAR UNIQUE) ;
INSERT INTO ACCESS_LEVELS VALUES (1,' для общего доступа ');
INSERT INTO ACCESS_LEVELS VALUES (2,'для внутреннего использования');
INSERT INTO ACCESS_LEVELS VALUES (3,' секретно ');
INSERT INTO ACCESS_LEVELS VALUES (4,' совершенно секретно ');
Шаг 2. Создать таблицу, содержащую матрицу уровней доступа групп пользователей, пример которой представлен ниже.
DROP TABLE GROUPS_ACCESS_LEVEL;
CREATE TABLE GROUPS_ACCESS_LEVEL (GROUP_NAME VARCHAR PRIMARY KEY,
ACCESS_LEVEL INTEGER REFERENCES
ACCESS_LEVELS (ACCESS_LEVEL_ID));
Шаг 3. Разграничить права на таблицу groups_access_level:
REVOKE ALL ON GROUPS_ACCESS_LEVEL FROM GROUP USERS;
GRANT SELECT ON GROUPS_ACCESS_LEVEL TO GROUP USERS;
Шаг 4. Присвоить группе users необходимый уровень доступа
INSERT INTO GROUPS_ACCESS_LEVEL VALUES ('users',2);
Шаг 5. Добавить в таблицу БД Klients поле с описанием меток конфиденциальности записей spot_conf:
ALTER TABLE KLIENTS ADD COLUMN SPOT_CONF INTEGER DEFAULT 1
REFERENCES ACCESS_LEVELS (ACCESS_LEVEL_ID);
Таблица с информацией о директорах
CREATE SEQUENCE DIRS_ID;
CREATE TABLE DIRS (DIRS_ID INTEGER NOT NULL PRIMARY KEY DEFAULT NEXTVAL ('KLIENTS_ID'),
NAME VARCHAR (30),
SEX CHAR (1),
BIRTHDAY DATE,
CONSTRAINT VALID_SEX CHECK (SEX IN ('Ж','М ’)));
COMMENT ON TABLE PERSONS IS
'ТАБЛИЦА ИНФОРМАЦИИ О ДИРЕКТОРАХ;
Для создания механизма управления метками при доступе пользователей и групп пользователей к таблице persons выполним следующую последовательность шагов.
Шаг 1. Создать справочник уровней доступа с помощью команды, пример которой представлен ниже.
CREATE TABLE ACCESS_LEVELS (ACCESS_LEVEL_ID INTEGER PRIMARY KEY,
ACCESS_LEVELVARCHAR UNIQUE) ;
INSERT INTO ACCESS_LEVELS VALUES (1,' для общего доступа ');
INSERT INTO ACCESS_LEVELS VALUES (2,'для внутреннего использования');
INSERT INTO ACCESS_LEVELS VALUES (3,' секретно ');
INSERT INTO ACCESS_LEVELS VALUES (4,' совершенно секретно ');
Шаг 2. Создать таблицу, содержащую матрицу уровней доступа групп пользователей, пример которой представлен ниже.
DROP TABLE GROUPS_ACCESS_LEVEL;
CREATE TABLE GROUPS_ACCESS_LEVEL (GROUP_NAME VARCHAR PRIMARY KEY,
ACCESS_LEVEL INTEGER REFERENCES
ACCESS_LEVELS (ACCESS_LEVEL_ID));
Шаг 3. Разграничить права на таблицу groups_access_level:
REVOKE ALL ON GROUPS_ACCESS_LEVEL FROM GROUP USERS;
GRANT SELECT ON GROUPS_ACCESS_LEVEL TO GROUP USERS;
Шаг 4. Присвоить группе users необходимый уровень доступа
INSERT INTO GROUPS_ACCESS_LEVEL VALUES ('users',2);
Шаг 5. Добавить в таблицу БД Klients поле с описанием меток конфиденциальности записей spot_conf:
ALTER TABLE DIRS ADD COLUMN SPOT_CONF INTEGER DEFAULT 1
REFERENCES ACCESS_LEVELS (ACCESS_LEVEL_ID);
Таблица с информацией об операционистах
CREATE SEQUENCE OPERS_ID;
CREATE TABLE OPERS (OPERS_ID INTEGER NOT NULL PRIMARY KEY DEFAULT NEXTVAL ('KLIENTS_ID'),
NAME VARCHAR (30),
SEX CHAR (1),
BIRTHDAY DATE,
CONSTRAINT VALID_SEX CHECK (SEX IN ('Ж','М ’)));
COMMENT ON TABLE PERSONS IS
'ТАБЛИЦА ИНФОРМАЦИИ ОБ ОПЕРАЦИОНИСТАХ;
Для создания механизма управления метками при доступе пользователей и групп пользователей к таблице persons выполним следующую последовательность шагов.
Шаг 1. Создать справочник уровней доступа с помощью команды, пример которой представлен ниже.
CREATE TABLE ACCESS_LEVELS (ACCESS_LEVEL_ID INTEGER PRIMARY KEY,
ACCESS_LEVELVARCHAR UNIQUE) ;
INSERT INTO ACCESS_LEVELS VALUES (1,' для общего доступа ');
INSERT INTO ACCESS_LEVELS VALUES (2,'для внутреннего использования');
INSERT INTO ACCESS_LEVELS VALUES (3,' секретно ');
INSERT INTO ACCESS_LEVELS VALUES (4,' совершенно секретно ');
Шаг 2. Создать таблицу, содержащую матрицу уровней доступа групп пользователей, пример которой представлен ниже.
DROP TABLE GROUPS_ACCESS_LEVEL;
CREATE TABLE GROUPS_ACCESS_LEVEL (GROUP_NAME VARCHAR PRIMARY KEY,
ACCESS_LEVEL INTEGER REFERENCES
ACCESS_LEVELS (ACCESS_LEVEL_ID));
Шаг 3. Разграничить права на таблицу groups_access_level:
REVOKE ALL ON GROUPS_ACCESS_LEVEL FROM GROUP USERS;
GRANT SELECT ON GROUPS_ACCESS_LEVEL TO GROUP USERS;
Шаг 4. Присвоить группе users необходимый уровень доступа
INSERT INTO GROUPS_ACCESS_LEVEL VALUES ('users',2);
Шаг 5. Добавить в таблицу БД Klients поле с описанием меток конфиденциальности записей spot_conf:
ALTER TABLE OPERS ADD COLUMN SPOT_CONF INTEGER DEFAULT 1
REFERENCES ACCESS_LEVELS (ACCESS_LEVEL_ID);
Таблица с информацией о работниках филиала
CREATE SEQUENCE WORKERS_ID;
CREATE TABLE WORKERS (WORKERS_ID INTEGER NOT NULL PRIMARY KEY DEFAULT NEXTVAL ('KLIENTS_ID'),
NAME VARCHAR (30),
SEX CHAR (1),
BIRTHDAY DATE,
CONSTRAINT VALID_SEX CHECK (SEX IN ('Ж','М ’)));
COMMENT ON TABLE PERSONS IS
'ТАБЛИЦА ИНФОРМАЦИИ О РАБОТНИКАХ ФИЛИАЛА;
Для создания механизма управления метками при доступе пользователей и групп пользователей к таблице persons выполним следующую последовательность шагов.
Шаг 1. Создать справочник уровней доступа с помощью команды, пример которой представлен ниже.
CREATE TABLE ACCESS_LEVELS (ACCESS_LEVEL_ID INTEGER PRIMARY KEY,
ACCESS_LEVELVARCHAR UNIQUE) ;
INSERT INTO ACCESS_LEVELS VALUES (1,' для общего доступа ');
INSERT INTO ACCESS_LEVELS VALUES (2,'для внутреннего использования');
INSERT INTO ACCESS_LEVELS VALUES (3,' секретно ');
INSERT INTO ACCESS_LEVELS VALUES (4,' совершенно секретно ');
Шаг 2. Создать таблицу, содержащую матрицу уровней доступа групп пользователей, пример которой представлен ниже.
DROP TABLE GROUPS_ACCESS_LEVEL;
CREATE TABLE GROUPS_ACCESS_LEVEL (GROUP_NAME VARCHAR PRIMARY KEY,
ACCESS_LEVEL INTEGER REFERENCES
ACCESS_LEVELS (ACCESS_LEVEL_ID));
Шаг 3. Разграничить права на таблицу groups_access_level:
REVOKE ALL ON GROUPS_ACCESS_LEVEL FROM GROUP USERS;
GRANT SELECT ON GROUPS_ACCESS_LEVEL TO GROUP USERS;
Шаг 4. Присвоить группе users необходимый уровень доступа
INSERT INTO GROUPS_ACCESS_LEVEL VALUES ('users',2);
Шаг 5. Добавить в таблицу БД Klients поле с описанием меток конфиденциальности записей spot_conf:
ALTER TABLE WORKERS ADD COLUMN SPOT_CONF INTEGER DEFAULT 1
REFERENCES ACCESS_LEVELS (ACCESS_LEVEL_ID);
Дата: 2019-07-30, просмотров: 184.