Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Горбатов Аттестационные испытания автоматизированных систем от 2014

.pdf
Скачиваний:
79
Добавлен:
12.11.2022
Размер:
12.47 Mб
Скачать

--работать разрешено:

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