Как правильно возжигать сыпучие благовония санг

Как правильно возжигать сыпучие благовония санг

Страница 1 из 3

Эта статья рассматривает некоторые особенности средства Label Security в Oracle. Здесь показана возможность секретить служебный столбец с метками доступа к строкам Oracle, а также рассмотрены некоторые правила правки меток Oracle. В первую очередь статья затрагивает использование параметра TABLE_OPTIONS процедуры APPLY_TABLE_POLICY из пакета SA_POLICY_ADMIN.

Введение

Label Security есть реализация фирмой Oracle меточного, или мандатного метода доступа, известного специалистам по защите данных. Описание Label Security в документации Oracle имеет характерный справочный характер, что в данном случае можно считать обоснованным, так как самый мандатный доступ не придуман фирмой (аналогично тому, как фирма Oracle не придумала SQL или, скажем, JDBC). В то же время описание мандатного доступа, на которое ссылается фирма Oracle, http://niap.nist.gov/cc-scheme/cc_docs/, весьма непросто для восприятия специалистом по БД. Несколько более понятны тексты на русском языке, подготовленные Гостехкомиссией при Президенте РФ, однако и они рассчитаны в первую очередь на специалистов по безопасности.

Настоящая работа предназначена показать некоторые возможности Label Security именно администраторам и разработчикам на Oracle, а главное - помочь им в самостоятельном изучении этой темы. Без последнего, увы, не обойтись: даже выборочное рассмотрение меточного доступа на простых примерах потребовало сразу серии статей !

Здесь будет показана возможность секретить служебный столбец с метками доступа к строкам, а также рассмотрены некоторые возможности правки конкретных меток. В первую очередь статья сосредотачивается на использовании параметра TABLE_OPTIONS процедуры APPLY_TABLE_POLICY из пакета SA_POLICY_ADMIN.

Подготовка к работе

Предполагается, что имеются структуры и объекты, а именно:

  • первоначально отсутствовавшая в схеме SCOTT таблица PHONE, заполненная номерами телефонов для сотрудников из таблицы EMP
  • два уровня секретности с краткими названиями 'OPEN' и 'LIMITED'
  • политика меточного доступа под названием EMPSEC_POLICY и заданное в рамках этой политики название служебного столбца для меток доступа под названием EMPSEC_LABEL
  • две разные метки, построенные на базе имеющихся уровней секретности, и которыми в рамках политики EMPSEC_POLICY помечены строки таблиц PHONE и EMP схемы SCOTT
  • два пользователя EMPLOYEE и HEAD, отмеченные разными правами доступа к строкам

Чтобы все это построить в своей БД, достаточно шаг за шагом повторить действия из предыдущей статьи.

Для удобства работы в SQLPlus подготовим несколько файлов. Файл phonepolicyoptions.sql:

CONNECT lbacsys/lbacsys
BEGIN
SA_POLICY_ADMIN.REMOVE_TABLE_POLICY
(
POLICY_NAME => 'empsec_policy'
, SCHEMA_NAME => 'scott'
, TABLE_NAME => 'phone'
, DROP_COLUMN => TRUE
);
END;
/
BEGIN
SA_POLICY_ADMIN.APPLY_TABLE_POLICY
(
POLICY_NAME => 'empsec_policy'
, SCHEMA_NAME => 'scott'
, TABLE_NAME => 'phone'
, TABLE_OPTIONS => '&1'
);
END;
/
UPDATE scott.phone
SET empsec_label

= CASE
WHEN empno IN (
SELECT empno
FROM scott.emp
WHERE job IN ( 'MANAGER', 'PRESIDENT' )
)
THEN CHAR_TO_LABEL ( 'EMPSEC_POLICY', 'LIMITED' )
ELSE CHAR_TO_LABEL ( 'EMPSEC_POLICY', 'OPEN' )
END
;

В этом сценарии сначала из политики EMPSEC_POLICY исключается таблица SCOTT.PHONE, причем благодаря явно указанному значению параметра DROP_COLUMN => TRUE служебный (в рамках этой политики) столбец EMPSEC_LABEL также удалится. Затем политика применяется к таблице заново, а ее (новые, те, что нам требуется) свойства будем указывать через параметр для SQLPlus. Поскольку служебный столбец в таблице PHONE воссоздается заново, его придется и заново заполнять, причем (обратите внимание !) ради удобства всегда однаково.

Другой файл, phones.sql, послужит для наблюдения результата:

SELECT ename, pno
FROM scott.emp LEFT OUTER JOIN scott.phone
USING (empno)
/

Он взят из предыдущей статьи, но в силу своей краткости и ради ясности повторяется здесь.

Создадим также файл updateallen.sql:

UPDATE scott.phone
SET
empsec_label
= CHAR_TO_LABEL ( 'empsec_policy', '&1' )
WHERE
empno
= ( SELECT empno FROM scott.emp WHERE ename = 'ALLEN' )
/

Несколько прочих сценарных файлов будет создано по ходу дела.

Выдадим в SQLPlus:

SQL> SET VERIFY OFF

Можно ставить опыты.

Предыдущая страница - Следующая страница »

Рождество христово 2018 поздравление с рождеством 131
Как правильно возжигать сыпучие благовония санг 22
Танки
Как правильно возжигать сыпучие благовония санг 776
Осеннее детское
Как правильно возжигать сыпучие благовония санг 248
Юстировка - Форум о фотографии животных
Как правильно возжигать сыпучие благовония санг 399
Рецепт лазаньи
Как правильно возжигать сыпучие благовония санг 397
Аватарки для ватсапа
Как правильно возжигать сыпучие благовония санг 16
Как правильно возжигать сыпучие благовония санг 15
Как правильно возжигать сыпучие благовония санг 42
Как правильно возжигать сыпучие благовония санг 59
Как правильно возжигать сыпучие благовония санг 67
Как правильно возжигать сыпучие благовония санг 44
Как правильно возжигать сыпучие благовония санг 43

Похожие статьи