Базы данных Oracle - статьи

         

Не только защита строк, но и страховка пользователей


Одна из интересных особенностей меточного («мандатного») доступа в том, что он позволяет обладателю определенного уровня доступа запретить правку строк, не только более секретных, чем ему положено, но также и строк, менее секретных. Это напоминает кастовость по части действия; так сказать, «что положено быку, нельзя делать Юпитеру». В Oracle Label Security эта особенность нашла воплощение, в чем легко убедиться.

Создадим нового пользователя и дадим ему полномочия работы исключительно с «секретными» строками:

CONNECT / AS SYSDBA

CREATE USER secretmanager IDENTIFIED BY secretmanager;

GRANT minimal TO secretmanager;

CONNECT lbacsys/lbacsys

BEGIN SA_USER_ADMIN.SET_USER_LABELS ( POLICY_NAME => 'empsec_policy' , USER_NAME => 'secretmanager'

, MAX_READ_LABEL => 'limited'

, MIN_WRITE_LABEL => 'limited'

); END; /

(Заметьте, что ранее параметр MIN_WRITE_LABEL в процедуре SET_USER_LABELS мы не использовали; в результате умолчательного поведения Label Security для пользователя HEAD было MIN_WRITE_LABEL = 'OPEN', что легко проверяется по справочным таблицам).

Проверим теперь возможности SECRETMANAGER по чтению и по изменению полей строк, в том числе поля метки:

SQL> CONNECT secretmanager/secretmanager Connected. SQL> @phones

ENAME PNO ---------- -------------------- SMITH 665-7282 ALLEN 882-3154 WARD 610-1718 JONES 100-6539 MARTIN 103-1983 BLAKE 193-3112 CLARK 310-2673 SCOTT 680-4853 KING 542-6672 TURNER 293-1398 ADAMS 278-5105 JAMES 932-6728 FORD 485-9127 MILLER 865-6706

14 rows selected.

SQL> @updateallenpnumber UPDATE scott.phone * ERROR at line 1: ORA-12406: unauthorized SQL statement for policy EMPSEC_POLICY

... ... ... ...

SQL> @updateallen OPEN UPDATE scott.phone * ERROR at line 1: ORA-12406: unauthorized SQL statement for policy EMPSEC_POLICY

... ... ... ...

SQL> @updateallen LIMITED UPDATE scott.phone * ERROR at line 1: ORA-12406: unauthorized SQL statement for policy EMPSEC_POLICY

... ... ... ...



Содержание раздела