Горбатов Аттестационные испытания автоматизированных систем от 2014
.pdf--работать разрешено:
DESC issubjects
SELECT * FROM issubjects;
INSERT INTO issubjects (isid,name)
VALUES (9,'деятельность по теоретической оценке методов шифрования');
--А теперь ch_cert заводит еще одного пользователя - lic_clerc, --предварительно создавая для него роль lic_clerc_role, для ко-
торой
--предоставляется привилегия select, insert на таблицу islicns
Администратор приложения создает нового пользователя и объекты базы данных:
connect ch_cert/ch_cert@orcl CREATE ROLE lic_clerc_role; GRANT select, insert
ON islicns to lic_clerc_role;
CREATE USER lic_clerc IDENTIFIED BY lic_clerc DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp QUOTA 1m ON users;
--Пользователь-администратор ch_cert не может предоставлять --привилегию создания сессии с базой данных другим пользо-
вателям.
GRANT connect TO lic_clerc;
--появляется сообщение обошибке
--администратор system предоставит ему такую возможность
Администратор базы данных добавляет администратору приложения дополнительную привилегию:
connect system/system@orcl
GRANT connect TO ch_cert WITH ADMIN OPTION;
Администратор приложения добавляет пользователю привилегию:
connect ch_cert/ch_cert@orcl GRANT connect TO lic_clerc;
301
Новый пользователь соединяется с базой данных для проверки своих привилегий:
connect lic_clerc/lic_clerc@orcl SELECT * FROM islicns;
--здесь появляется сообщение об ошибке, так как --пользователь-администратор ch_cert забыл назначить
--роль lic_clerc_role пользователю lic_clerc:
Администратор приложения исправляет свою ошибку: connect ch_cert/ch_cert@orcl
GRANT lic_clerc_role TO lic_clerc;
Новый пользователь соединяется с базой данных для проверки своих привилегий:
connect lic_clerc/lic_clerc@orcl SELECT * FROM islicns;
--С другими таблицами, кроме ISLicns, LicCenter, --пользователю lic_clerc привилегии на работу не --предоставлены:
SELECT * FROM issubject; SELECT * FROM liccenter;
-- после двух последних запросов появляется сообщение об ошибке
Администратор приложения добавляет привилегии новому пользователю:
connect ch_cert/ch_cert@orcl
--Осталось добавить пользователю lic_clerc привилегию --на работу с таблицей liccenter (только
--select,insert) - через роль lic_clerc_role:
GRANT select,insert
ON liccenter TO lic_clerc_role;
Новый пользователь проверяет свои привилегии: connect lic_clerc/lic_clerc@orcl
SELECT * FROM liccenter;
--запрос отрабатывает успешно.
Теперь создадим пользователя certif_mgr и дадим ему возможность работать с таблицей Manufctr через роль certif_mgr_role. Другие таблицы в связи с этим пользователем нам не важны, так как
302
дальше, в соответствующей лабораторной работе по аудиту мы попытаемся решить задачу аудита работы двух менеджеров с одной таблицей Manufctr, которая входит в схему обоих менеджеров.
Администратор приложения создает третьего пользователя и наделяет его привилегиями:
connect ch_cert/ch_cert@orcl
CREATE USER certif_mgr identified BY certif_mgr DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp QUOTA 1m ON users;
GRANT connect TO certif_mgr; CREATE ROLE certif_mgr_role; GRANT select,insert,update,delete ON manufctr TO certif_mgr_role;
GRANT certif_mgr_role TO certif_mgr;
Сдача лабораторной работы
Сдача лабораторной работы заключается в выполнении студентом задачи разграничения полномочий в предметной области, заданной преподавателем – по такой же схеме, как и в приведенном описании лабораторной работы. Предметные области преподаватель может выбрать из числа поставляемых Oracle вместе с установочной версией СУБД примеров (схемы пользователей scott, hr, sh).
Тестовые задания к работе 11
Входной контроль
1. Что мы понимаем под пользователем (базы данных), когда говорим о ролях и привилегиях пользователей (базы данных)?
a)пользователя операционной системы;
b)учетную запись пользователя операционной системы;
c)учетную запись пользователя базы данных;
d)пользователя предприятия (в терминах глобальной аутентификации);
e)правильных ответов нет.
303
2.Какая (какие) из нижеприводимых строк соответствуют определению привилегий базы данных?
a)привилегии пользователя определяют, какие действия над данными и над объектами пользователей являются разрешенными (это разрешения на объекты пользователей, такие как таблицы, представления, последовательности, пакеты и т.п.);
b)привилегии пользователя определяют, какие действия в системе (базы данных) являются разрешенными (это разрешения на операции уровня базы данных, например подключение к базе данных, создание пользователей, внесение изменений в конфигурацию базы данных);
c)привилегии пользователя определяют, какие действия разрешены над файлами операционной системы реализующими программное обеспечение СУБД;
d)привилегии пользователя определяют какие дейсвтия разрешены над файлами операционной системы, реализующими базу данных;
e)правильных ответов нет.
3.Укажите, какие из нижеприводимых строк соответствуют типам привилегий пользователей СУБД:
a)табличные привилегии;
b)объектные привилегии;
c)программные привилегии;
d)системные привилегии;
e)правильных ответов нет.
4.Какие правила определены для управления привилегия-
ми?
a)объект принадлежит пользователю, его создавшему (если синтаксисом не указано создание объекта другого пользователя, конечно, при соответствующих полномочиях пользователя, создающего объект другого пользователя);
b)владелец объекта может изменять привилегии своего объек-
та;
c)объектная привилегия всегда соотносится с конкретным объектом, а системная ‒ с объектами вообще;
d)владелец объекта может отобрать привилегию на его использование у любого пользователя;
e)правильных ответов нет.
304
5.В нижеприводимых строках укажите строки с привилегиями, поддерживаемыми языком SQL:
a) ALTER; b) SELECT; c) INSERT; d) DROP;
e) правильных ответов нет.
6.Укажите верное определение роли:
a)роль – специально созданная программа, позволяющая вставлять записи в таблицу пользователя;
b)роль – специально создаваемое представление базы данных;
c)роль – это набор привилегий, которому присваивается имя;
d)роль – специально созданный программный модуль, включающий функции создания и манипулирования объектами пользователя;
e)правильных ответов нет.
7. В нижеприводимом списке укажите автоматически создаваемые (при создании базы данных) роли:
a)CONNECT;
b)RESOURCE;
c)DBA;
d)USERROLE;
e)правильных ответов нет.
Выходной контроль
1.АБД (system) создал в сеансе SQL*Plus пользователя U1, определив ему пароль, tablespase s и квоты на них. Укажите, какие роли получил по умолчанию пользователь U1:
a)DBA;
b)manager, boss;
c)connect, resource;
d)backup – manager;
e)правильных ответов нет;
f)я затрудняюсь с ответом на этот вопрос.
2.Польз. u3 имеет роли connect, resource и создал проц-ру getdata, вывод-ю на экран содерж. таблицы u3. tab3_1 и дал привил-ю исполн. этой процедуры польз. u4, имеющему роли
305
"connect", "resource", в схеме которого нет объектов. После каких из нижеприводимых команд пользователь u4 получит в своем сеансе сообщение об ошибке?
a)INSERT INTO u2.tab4 VALUES(124,123);
b)UPDATE u2.tab4 SET at1=345;
c)SELECT * FROM u2.tab4;
d)UPDATE u2.tab4 SET at2=345;
e)DELETE FROM u2.tab4;
f)я затрудняюсь с ответом на этот вопрос.
3.Польз. u3 имеет роли connect, resource и создал проц-ру getdata, вывод-ю на экран содерж. таблицы u3. tab3_1 и дал привил-ю исполн. этой процедуры польз. u4, имеющему роли "connect", "resource", в схеме которого нет объектов. После каких из нижеприводимых команд пользователь u4 получит в своем сеансе сообщение об ошибке?
a) SELECT * FROM tab3_1; b) SELECT * FROM u3.tab3_1; c) EXEC getdata;
d) EXEC u3.getdata; e) BEGIN u3.getdata; END; /
f) я затрудняюсь с ответом на этот вопрос.
4.Пользователю U1 предоставлена системная привилегия
"creat e any table", после чего он создает таблицу tab1(at1 numeric) в схеме пользователя U2. Укажите команды, для которых Oracle выдает сообщение об ошибке пользователю U1.
a) CREATE TABLE tab1(at1 NUMERIC);
b) SELECT * FROM u2.tab1; (таблица уже создана в схеме u2); c) CREATE TABLE u2.tab1(at1 NUMERIC);
d) UPDATE TABLE u2.tab1 SET at1=10; e) INSERT INTO u2.tab1 VALUES(5);
f) я затрудняюсь с ответом на этот вопрос.
5.Какой пользователь после установки базы данных может запускать в работу и останавливать базу данных?
a) SCOTT; b) SYS;
c) SYSTEM; d) LBACSYS;
306
e)пользователь с административными правами операционной системы;
f)я затрудняюсь с ответом на этот вопрос.
6.Польз-лю U1 даны только привилегии "create session", "create any table", "create public synonym". Он создает в схеме польз-ля U2 таблицу tab2(at1 numeric) и public synonym tabx
для нее. Укажите команды, для которых польз-лю U2 будет выдано сообщение об ошибке (u2 имеет роли connect,resource,
привилегию create view):
a)SELECT * FROM tabx;
b)CREATE TABLE tabx(at1 NUMERIC);
c)CREATE VIEW tabx AS SELECT * FROM tabx;
d)DROP PUBLIC SYNONYM tabx;
e)INSERT INTO tabx VALUES(55);
f)я затрудняюсь с ответом на этот вопрос.
7.Польз. u1 создан пользователем u2 (АБД): Create user u1 identified by u1 default tablespace my_db temporary tablespace temp quota 1m on my_db; Затем польз. u2 дал польз.u1 роль
"connect", после чего польз. u1 соединяется с сервером Oracle. Какая из команд польз. u1 выдаст сообщение об ошибке?
a)ALTER USER u1 IDENTIFIED BY my_pwd;
b)ALTER USER u1 TEMPORARY TABLESPACE your_db;
c)CREATE TABLE tab1(at1 NUMBE R);
d)SELECT * FROM user_tables;
e)CREATE SEQUENCE my_seq;
f)я затрудняюсь с ответом на этот вопрос.
307
Работа 12
ДЕТАЛЬНЫЙ КОНТРОЛЬ ДОСТУПА ПОЛЬЗОВАТЕЛЕЙ К БАЗАМ ДАННЫХ
Цель: получение навыков практического использования детального контроля доступа пользователей к информации в базе данных. Ознакомление с детальным контролем доступа (FGA – Fine Grained Access) пользователей к информации в базе данных.
ПЛАН ПРОВЕДЕНИЯ РАБОТЫ
1.Установка предметной области, заданной преподавателем для настройки детального контроля доступа.
2.Определение политики (правила) безопасности для установленной предметной области.
3.Создание контекста приложения.
4.Создание модуля, устанавливающего контекст и триггера, заставляющего выполнять эту процедуру при соединении с базой данных любого пользователя.
5.Создание функции, воплощающей политику (правило) безопасности.
6.Создание политики (правила) безопасности – обеспечение связи функции по соответствующему пункту с таблицей, для которой сформулирована политика безопасности.
ПОРЯДОК ПРОВЕДЕНИЯ РАБОТЫ
1. Создание предметной области для настройки детального контроля доступа
Предметная область приведена на рис.12.1. Скрипты создания предметной области – файлы create.sql, insert.sql приведены в приложении 7. В качестве владельца схемы создадим пользователя t2 и дадим ему необходимые привилегии.
Эти действия выполним пользователем SYS. Вся работа проходит в клиентском приложении SQL*Plus, куда копируются нижеприводимые команды.
308
Рис. 12.1. Учебная информационная система «Учёт использования дисплейных классов»
connect sys/sys@orcl as sysdba DROP USER t2;
DROP USER Зотов; DROP USER Лаврентьев; DROP USER Беззубцев;
CREATE USER t2 IDENTIFIED BY t2 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 1m ON users;
GRANT CREATE ANY CONTEXT TO t2; GRANT EXECUTE_CATALOG_ROLE TO t2; GRANT EXECUTE ON dbms_rls TO t2; GRANT EXECUTE ON dbms_fga TO t2; GRANT CREATE USER TO t2;
309
GRANT CREATE SESSION, RESOURCE TO t2 WITH ADMIN OPTION;
GRANT SELECT ANY TABLE TO t2 WITH ADMIN OPTION; GRANT CREATE PUBLIC SYNONYM TO t2;
GRANT DROP PUBLIC SYNONYM TO t2;
Для того чтобы всю работу можно было выполнять повторно, удалим создаваемые ранее (при предыдущем выполнении работы) синонимы:
DROP PUBLIC SYNONYM error; DROP PUBLIC SYNONYM f2_1; DROP PUBLIC SYNONYM professor; DROP PUBLIC SYNONYM get_prof_id;
Теперь выполним скрипты создания предметной области, предварительно разместив их в папке c:\tmp (скрипты приведены в приложении 7).
Connect t2/t2@orcl
После выполнения этой команды надо скопировать из приложения 7 тексты скриптов create.sql, insert.sql и поместить их в текстовые файлы с этими же именами. Файлы create.sql, insert.sql надо поместитьь в папку c:\tmp и вслед за тем выполнить в окне
SQL*Plus команды:
@c:\tmp\create.sql
@c:\tmp\insert.sql
Теперь таблицы предметной области созданы и заполнены данными.
2. Определение политики (правила) безопасности для приведенной предметной области
Определим политику (правило) безопасности для приведенной предметной области (табл. 12.1).
В таблице professor в столбце prof_f 3 записи: 'Лаврентьев, Зотов, Беззубцев. Этих трех пользователей создадим. На основании политики безопасности они будут видеть разные строки в таблице Error при одинаковом запросе выборки к этой таблице.
После установки предметной области выполним запрос к таблице Error, связав вывод из нее со значением столбца Pro_f в таб-
310