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

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

DBMS_RLS.drop_POLICY( OBJECT_SCHEMA => 't2', OBJECT_NAME => 'error', POLICY_NAME => 'prof_id_policy'); end;

/

BEGIN DBMS_RLS.ADD_POLICY( OBJECT_SCHEMA => 't2', OBJECT_NAME => 'error',

POLICY_NAME => 'prof_id_policy', FUNCTION_SCHEMA => 't2', POLICY_FUNCTION => 'f2_1', STATEMENT_TYPES => 'SELECT, UPDATE'); END;

/

Проверим настроенный нами детальный контроль доступа. connect зотов/z@orcl

SELECT * FROM Error;

ERR_ID

ERR_DESCRIPTION

CLASS_ID

 

ERR_TYPE

REPAIRED

COMP_ID

----- -----

----------------------- --------------

--------------

----------------

2

Неисправен процессор

-

1

16

connect Лаврентьев/l@orcl SELECT * FROM Error;

ERR_ID

ERR_DESCRIPTION

CLASS_ID

 

ERR_TYPE

REPAIRED

COMP_ID

----- -----

-----------------------

--------------

--------------

----------------

3

Сгорел монитор

+

8

30

1

Сломался USB порт

+

5

1

connect Беззубцев/b@orcl SELECT * FROM Error;

строки не выбраны

Результат совпал с ожидаемым. Проверим еще выполнение UPDATE: connect Лаврентьев/l@orcl

316

UPDATE error SET repaired='-';

2 строк обновлено.

SELECT * FROM Error;

ERR_ID

ERR_DESCRIPTION

CLASS_ID

 

ERR_TYPE

REPAIRED

COMP_ID

----- -----

-----------------------

--------------

--------------

----------------

3

Сгорел монитор

+

8

30

1

Сломался USB порт

+

5

1

Запрос показал, что мы меняем строки, «видимые» только пользователю «Лаврентьев»

Вернем таблицу в исходное состояние. ROLLBACK.

Сдача лабораторной работы

Сдача лабораторной работы заключается в реализации студентом детального контроля доступа на индивидуальной предметной области. Студент сам определяет «родительскую» таблицу, в которой для трех строк символьного столбца с неповторяющимися значениями создает пользователей, а политику разграничения полномочий формирует для какой-либо «дочерней» таблицы, т.е. таблицы, в которой в качестве Foreign Key присутствует Primary Key родительской таблицы.

Тестовые задания к работе 12

Входной контроль

1. Среди нижеприводимых укажите строк(у/и) со средствами СУБД, помогающими реализовать принцип «минимальных привилегий»:

a)роли, упрощающие администрирование за счет определения групп детализированных привилегий, ограничивающих права доступа;

b)представления (view), позволяющие ограничить доступ к данным;

c)профили пользователя;

317

d)хранимые процедуры, реализующие корректные транзакции без прямого предоставления привилегий конкретному пользователю;

e)правильных ответов нет.

2.Среди нижеприводимых укажите строк(у/и) с компонент(ом/ами), используемым(и) при реализации детального контроля доступа:

a) представление таблицы, для которой реализуется детальный контроль доступа;

b) контекст приложения; c) политика безопасности;

d) функция, реализующая политику безопасности; e) правильных ответов нет.

3.Среди нижеприводимых укажите строк(у/и) с преимуществами детального контроля доступа по сравнению с использованием ролей, представлений, хранимых процедур:

a) защиту таблицы придется создавать только однажды на сервере баз данных, а не реализовывать ее многократно в каждом приложении, которое обращается к данным;

b) детальный контроль доступа реализуется на уровне базы данных и не принимает в расчет логику конкретных приложений; c) детальный контроль доступа может быть реализован непри-

вилегированным пользователем;

d) детальный контроль доступа сокращает время отработки запросов пользователей к базе данных;

e) правильных ответов нет.

4.Укажите синонимы детального контроля доступа (Fine Grained Access Control – техническое название):

a) Виртуальная частная база данных; b) Безопасность на уровне строк; c) Контекстное разделение;

d) Политика разделения групп строк; e) Правильных ответов нет.

5.Укажите, в чем выражается использование детального контроля доступа при обращении с использованием SQL к таблице базы данных:

a) каждый пользователь видит в таблице данные только «свои»

иданные других пользователей с такими же привилегиями;

318

b)каждый пользователь видит в таблице данные только «свои»

ине видит данные других пользователей;

c)к запросу любого пользователя во время его выполнения динамически присоединяется предложение where….;

d)к запросу любого пользователя во время его выполнения динамически присоединяется предложение group by….;

e)правильных ответов нет.

6.Какие привилегии/роли должен иметь разработчик для реализации детального контроля доступа?

a) CONNECT; b) RESOURCE;

c) EXECUTE_CATALOG_ROLE; d) CREATE ANY CONTEXT;

e) правильных ответов нет.

7.Укажите отдельные компоненты, которые включает политика безопасности, создаваемая пакетом dbms_rls при реализации детального контроля доступа:

a) имя схемы (имя учетной записи) пользователя, в которой находится таблица, для которой реализуется детальный контроль доступа;

b) имя таблицы, для которой реализуется детальный контроль доступа;

c) привилегии пользователя на действия по созданию его объектов;

d) название функции, реализующей политику безопасности; e) правильных ответов нет.

Выходной контроль

1. Укажите, какие из перечисленных ниже действий «участ-

вуют» в создании Virtual Private Database:

a)изменить метод аутентификации пользователя с password на external;

b)создать модуль, который устанавливает контекст приложения;

c)определить все роли, принадлежащие владельцу таблиц, для которых реализуется vpd;

d)создать контекст приложения;

e)определить цели политики безопасности;

319

f)создать функцию воплощения политики безопасности;

g)добавить политику безопасности – связать функцию воплощения политики безопасности с таблицей;

h)правильных ответов нет.

2.Укажите верное определение контекста приложения:

a)контекст – это неизменный блок данных, которым постоянно обмениваются сервер и клиент Oracle при каждой передаче запрошенных данных;

b)контекст – это заголовок списка занятых блоков в буферном кэше SGA;

c)контекст – это часть заголовка каждого блока с хранимой информацией схемы пользователя;

d)контекст – это именованный набор атрибутов и значений, который можно установить и затем связать с сессией текущего пользователя;

e)контекст – результат парсинга запроса пользователя к БД в текущей сессии;

f)правильных ответов нет.

3.Какие значения позволяет получить встроенный кон-

текст USERENV?

a)номер активного log файла;

b)имя пользователя текущей сессии;

c)имя компьютера, с которого пользователь установил сессию

ссервером Oracle;

d)тип аутентификации пользователя;

e)имя базы данных;

f)имя домена базы данных Oracle;

g)правильных ответов нет.

4.Каким компонентом объявления политики DBMS_ RLS.ADD_POLICY обеспечивается возможность выполнения всех действий (select,insert,update,delete) с таблицей, для кото-

рой создается новая политика?

a)policy_function;

b)update_check;

c)static_poicy;

d)enable;

e)statement_types;

f)правильных ответов нет.

320