Горбатов Аттестационные испытания автоматизированных систем от 2014
.pdf'P:TRG:E', TRUE); END;
/
-- проверка добавления меток
SELECT * FROM dba_sa_labels;
8. Применение политики к таблице
connect lbacsys/lbacsys@orcl
--посмотрим перечень столбцов таблицы «Official» до применения политики к таблице
DESCRIBE scott.official;
--свяжем политику с таблицей «Official»
BEGIN sa_policy_admin.apply_table_policy
('official_policy','scott','official','label_default,read_control'); END;
/
--политика, примененная к таблице добавила к ней дополнительный столбец SCOTT_COL.
DESCRIBE scott.official;
--какие политики к каким таблицам применены
SELECT * FROM dba_sa_table_policies;
9. Создание пользователей и наделение их соответствующими правами
connect sys/sys@orcl as sysdba
--сначала удалим пользователей, созданных при предыдущем выполнении лабораторной работы:
DROP USER king; DROP USER jones; DROP USER clark; DROP USER blake; DROP USER allen; DROP USER martin; DROP USER miller; DROP USER james;
331
DROP USER turner; DROP USER ward; DROP USER ford; DROP USER adams; DROP USER smith;
--создадим пользователей заново:
CREATE USER king IDENTIFIED BY king DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;
CREATE USER jones IDENTIFIED BY jones DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
QUOTA 10m ON users;
CREATE USER clark IDENTIFIED BY clark DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;
CREATE USER blake IDENTIFIED BY blake DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
QUOTA 10m ON users;
CREATE USER allen IDENTIFIED BY allen DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;
CREATE USER martin IDENTIFIED BY martin DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
QUOTA 10m ON users;
CREATE USER miller IDENTIFIED BY miller DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
QUOTA 10m ON users;
CREATE USER james IDENTIFIED BY james DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
332
QUOTA 10m ON users;
CREATE USER turner IDENTIFIED BY turner DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
QUOTA 10m ON users;
CREATE USER ward IDENTIFIED BY ward DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;
CREATE USER ford IDENTIFIED BY ford DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;
CREATE USER adams IDENTIFIED BY adams DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
QUOTA 10m ON users;
CREATE USER smith IDENTIFIED BY smith DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
QUOTA 10m ON users;
--выдадим созданным пользователям обычные привилегии:
GRANT create session, resource TO king,jones,clark,blake, allen,martin,miller,james,turner,ward,ford,adams,smith;
--выдадим пользователям привилегии для работы с таблицей
«Official»:
GRANT select, update, insert, delete
ON scott.official TO king,jones,clark,blake, allen,martin,miller,james,turner,ward,ford,adams,smith;
10. Назначение меток пользователям
connect lbacsys/lbacsys@orcl
--устанавливаем метки пользователям:
BEGIN sa_user_admin.set_user_labels
('OFFICIAL_POLICY','KING','HS:FIN,ISS,TRG:GD');
333
sa_user_admin.set_user_labels ('OFFICIAL_POLICY','CLARK','S:FIN:NO'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','JONES','S:ISS:NO'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','BLAKE','S:TRG:NO'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','MILLER','P:FIN:E'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','SCOTT','C:ISS:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','FORD','C:ISS:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','WARD','C:TRG:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','ALLEN','C:TRG:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','MARTIN','C:TRG:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','TURNER','C:TRG:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','ADAMS','P:ISS:E'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','SMITH','P:ISS:E'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','JAMES','P:TRG:E'); END;
/
11. Назначение меток строкам таблицы «Official»
--сначала отключим политику, чтобы пользователь «Scott» мог изменять строки таблицы «Official»:
connect lbacsys/lbacsys@orcl BEGIN
sa_sysdba.disable_policy('official_policy'); END;
334
/
--теперь пользователь «Scott» (в его схеме находится таблица «Official») устанавливает метки строкам таблицs «Official»:
connect scott/scott@orcl
UPDATE scott.official SET scott_col=100
WHERE empno= (SELECT empno FROM scott.emp WHERE ename='KING');
UPDATE scott.official SET scott_col=200
WHERe empno= (SELECT empno FROM scott.emp WHERE ename='CLARK');
UPDATE scott.official SET scott_col=300
WHERE empno= (SELECT empno FROM scott.emp WHERE ename='JONES');
UPDATE scott.official SET scott_col=400
WHERE empno= (SELECT empno FROM scott.emp WHERE ename='BLAKE');
UPDATE scott.official SET scott_col=800
WHERE empno= (SELECT empno FROM scott.emp WHERE ename='MILLER');
UPDATE scott.official SET scott_col=600
WHERE empno= (SELECT empno FROM scott.emp WHERE ename='FORD');
UPDATE scott.official SET scott_col=700
WHERE empno IN (SELECT empno FROM scott.emp WHERE ename='WARD'OR ename='ALLEN' OR ename='TURNER' OR ename='MARTIN');
UPDATE scott.official SET scott_col=900
335
WHERE empno IN (SELECT empno FROM scott.emp WHERE ename='ADAMS' OR ename='SMITH');
UPDATE scott.official SET scott_col=1000
WHERE empno= (SELECT empno FROM scott.emp WHERE ename='JAMES');
--актуализируем политику:
connect lbacsys/lbacsys@orcl BEGIN
sa_sysdba.enable_policy('official_policy'); END;
/
12. Проверка всех настроек – демонстрация OLS в работе
connect king/king@orcl SELECT * FROM scott.official;
--KING может видеть все строки
INSERT INTO scott.official (id,dolzh) VALUES (16,'ministr');
--вставленная строка имеет ту же метку в cтолбце SCOTT_COL, что и пользователь KING
SELECT * FROM scott.official;
DELETE FROM scott.official WHERE id=16;
connect FORD/FORD@orcl
SELECT * FROM scott.official;
--ford может видеть только информацию о старших экспертах и экспертах отдела исследований
INSERT INTO scott.official (id,dolzh) VALUES (16,'spec');
--вставленная строка имеет ту же метку в cтолбце SCOTT_COL, что и пользователь FORD
SELECT * FROM scott.official;
DELETE FROM scott.official WHERE id=16; connect martin/martin@orcl
336
select * from scott.official;
--martin может видеть информацию о всех старших экспертах отдела торговли и об экспертах отдела торговли
INSERT INTO scott.official (id,dolzh) VALUES (16,'spec');
--вставленная строка имеет ту же метку в cтолбце SCOTT_COL, что и юзер FORD
SELECT * FROM scott.official;
DELETE FROM scott.official WHERE id=16;
--аналогично WARD, ALLEN,TURNER могут видеть информацию о всех старших экспертах отдела торговли и об экспертах отдела торговли
connect ward/ward@orcl SELECT * FROM scott.official; connect james/james@orcl
--james увидит только две строки экспертов отдела торговли
SELECT * FROM scott.official; connect adams/adams@orcl SELECT * FROM scott.official;
--adams, как и SMITH увидят только две строки экспертов отдела исследований
connect smith/smith@orcl SELECT * FROM scott.official;
Сдача лабораторной работы
Заключается в реализации студентом мандатного контроля доступа (только по обязательным компонентам) на индивидуальной предметной области. Студент сам определяет «родительскую» таблицу, в которой для трех строк символьного столбца с неповторяющимися значениями создает пользователей, а политику разграничения полномочий формирует для какой-либо «дочерней» таблицы, т.е. таблицы, в которой в качестве Foreign Key присутствует Primary Key родительской таблицы.
337
Тестовые задания к работе 13
Входной контроль
1.Что является мандатом пользователя при его доступе к строкам таблицы базы данных, для которой выполнена настройка мандатного метода доступа?
a) назначаемая пользователю совокупность соответствующих системных привилегий;
b) назначаемая пользователю совокупность соответствующих ролей;
c) назначаемый пользователю соответствующий профиль;
d) назначаемые пользователям соответствующие метки досту-
па;
e) правильных ответов нет.
2.Укажите верн(ое/ые) продолжени(е/я) фразы: для того, чтобы воспользоваться возможностью мандатного метода доступа, надо:
a) завести пользователя «ols»;
b) завести при установке программного обеспечения СУБД Oracle нужные компоненты;
c) наделить администратора базы данных привилегией «Create OLS…»;
d) завести необходимые структуры в БД; e) правильных ответов нет.
3.Среди нижеприводимых строк укажите компонент(ы) метки доступа, регламентирующей доступ к строкам таблицы:
a) компонент уровня секретности; b) уровень аудита;
c) компонент уровня/категории данных; d) компонент уровня безопасности группы; e) правильных ответов нет.
4.Пользователь с какой учетной записью должен запускать скрипт «catols.sql» для обеспечения возможности использова-
ния Oracle Label Security? a) system;
b) sys;
c) dbsnmp;
338
d)sysman;
e)правильных ответов нет.
5.Укажите цифру, равную числу максимального количества компонент метки строк таблиц и пользователей, которое может быть использовано при реализации Oracle Label Security.
a)1;
b)2;
c)3;
d)4;
e)правильных ответов нет.
6.Какой программой надо воспользоваться для создания компонентов Oracle, необходимых для использования Oracle Label Security?
a)Database Configuration Assistant;
b)Database Upgrade Assistant;
c)Oracle Universal Installer;
d)Policy Manager;
e)правильных ответов нет.
7.Пользователь LBACSYS был установлен неудачно (он не может создавать политику OLS). Среди нижеприводимых строк укажите верную строку с действиями по переустановке этого пользователя:
a)пользователь sys перезапускает скрипт создания пользовате-
ля lbacsys;
b)пользователь sys выполняет команду «drop user lbacsys», а потом запускает вновь скрипт создания пользователя «lbacsys»;
c)пользователь sys переустанавливает базу данных, а потом запускает вновь скрипт создания пользователя «lbacsys»;
d)пользователь sys запускает скрипт catnools.sql, а потом запускает вновь скрипт создания пользователя «lbacsys»;
e)правильных ответов нет.
Выходной контроль
1. Укажите, с помощью какого модуля реализуется связывание вариантов меток безопасности с пользователями в тех-
нологиях Oracle Label Security?
339
a)dbms_rls;
b)sa_label_admin;
c)dbms_session;
d)sa_user_admin;
e)dbms_fga;
f)sa_sysdba;
g)правильных ответов нет.
2.С помощью какого модуля определяются (создаются) уровни доступа пользователей к информации, отделения и группы, к которым принадлежат пользователи, и увязываются
сполитикой безопасности, создаваемой при реализации Oracle Label Security?
a) sa_sysdba;
b) dbms_session; c) dbms_rls;
d) sa_components; e) dbms_fga;
f) правильных ответов нет.
3.Укажите, с помощью каких модулей создаются варианты (многомерных) меток безопасности в технологиях Oracle Label Security?
a) dbms_rls;
b) sa_label_admin; c) dbms_session; d) sa_user_admin; e) dbms_fga;
f) sa_sysdba;
g) правильных ответов нет.
4.Что необходимо сделать для того, чтобы оператором «update» назначить OLS метки уже существующим строкам таблицы, для которой выполнены все предварительные OLS настройки?
a) создать копию этой таблицы;
b) назначить «update any table» привилегию «хозяину» этой таблицы;
c) включить OLS политику безопасности для этой таблицы; d) отключить OLS политику безопасности для этой таблицы;
340