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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

"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