(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Изучаем метки доступа к строкам в Oracle: задание свойств столбца доступа в таблице

Владимир Пржиялковский

предыдущая статья серии

"Я за свечку,
Свечка - в печку!
Я за книжку,
Та - бежать ..."
Корней Чуковский, "Мойдодыр"

Аннотация

Эта статья является непосредственным продолжением статьи "Изучаем метки доступа к строкам: специальные привилегии для избранных", и рассматривает некоторые возможности управления правкой полей записей, защищенных метками доступа средствами Label Security в Oracle в соответствии с мандатным доступом.

Подразумеваемые в статье состояние базы и сценарные файлы соответствуют концу предыдущей статьи.

Правка обычных полей

Раньше мы рассмотрели некоторые возможности правки меток, задающих секретность строк (и возможности в виде исключения обходить запреты на правку). А что касается возможностей править обычные поля таблицы, строки которой защищены метками секретности?

Свойство доступа к обычным полям (не к служебному полю секретности строки), ранее использованное, называлось READ_CONTROL. Уточним поведение этого свойства. Выдадим:

@userprivilege employee ''

@phonepolicyoptions 'read_control'

Продолжим:

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

ENAME PNO
- -
ALLEN 882-3154
WARD 610-1718
MARTIN 103-1983
BLAKE  
CLARK  
KING  
TURNER 293-1398
JAMES 932-6728
MILLER 865-6706

9 rows selected.

SQL> UPDATE scott.phone
  2  SET pno = pno
  3  WHERE
  4  empno
  5  = ( SELECT empno FROM scott.emp WHERE ename = 'ALLEN' );

1 row updated.

SQL> save updateallenpnumber
Created file updateallenpnumber.sql

SQL> @updateallen OPEN

1 row updated.

SQL> @updateallen LIMITED

1 row updated.

SQL> @updateallen OPEN

0 row updated.

SQL> @updateallenpnumber

0 row updated.

Пока ничего нового относительно меток (пользователю EMPLOYEE, как это и было раньше, позволено "играть" только "на повышение" секретности), а что касается обычных полей разрешенных ему строк, то правка, как показывает пример, возможна.

Однако в нашем распоряжении имеются и другие свойства меток в конкретной таблице, например:

  • INSERT_CONTROL,
  • UPDATE_CONTROL,
  • DELETE_CONTROL,
  • WRITE_CONTROL.

Рассмотрим для примера свойство UPDATE_CONTROL. Выдадим:

@phonepolicyoptions 'update_control'

Повторим проверку:

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

ENAME PNO
- -
ALLEN 882-3154
WARD 610-1718
MARTIN 103-1983
BLAKE 193-3112
CLARK 310-2673
KING 542-6672
TURNER 293-1398
JAMES 932-6728
MILLER 865-6706

9 rows selected.

SQL> @updateallen OPEN

1 row updated.

SQL> @updateallenpnumber

1 row updated.

SQL> @updateallen LIMITED

1 row updated.

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

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

Факт налицо: включение UPDATE_CONTROL не изменило наши возможности по изменению метки , однако ж обычные поля запретных для него строк он править уже не в состоянии. Заметьте, что это коснулось только правки, но не чтения. Чтобы вновь защитить обычные поля от прочтения, достаточно выдать:

@phonepolicyoptions 'update_control, read_control'

Доказательство:

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

ENAME PNO
- -
ALLEN 882-3154
WARD 610-1718
MARTIN 103-1983
BLAKE   
CLARK   
KING   
TURNER 293-1398
JAMES 932-6728
MILLER 865-6706

9 rows selected.

Свойства INSERT_CONTROL и DELETE_CONTROL аналогичны рассмотренному UPDATE_CONTROL. Свойство же WRITE_CONTROL введено для удобства и обозначает INSERT_CONTROL + UPDATE_CONTROL + DELETE_CONTROL. Это легко обнаруживается следующим образом. Продолжим:

SQL> @showoptions

POLICY_NAME SCHEMA_NAME TABLE_NAME TABLE_OPTIONS
-
EMPSEC_POLICY SCOTT EMP READ_CONTROL,
LABEL_DEFAULT
EMPSEC_POLICY SCOTT PHONE  READ_CONTROL,
UPDATE_CONTROL 

А теперь выдадим:

@phonepolicyoptions 'write_control, read_control'

Снова проверим свойства ("особенности") применения нашей политики к конкретным таблицам:

SQL> @showoptions

POLICY_NAME SCHEMA_NAME TABLE_NAME TABLE_OPTIONS
-
EMPSEC_POLICY SCOTT EMP READ_CONTROL,
LABEL_DEFAULT
EMPSEC_POLICY SCOTT PHONE  READ_CONTROL,
INSERT_CONTROL,
UPDATE_CONTROL,
DELETE_CONTROL
 

следующая статья серии

Ссылки по теме



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 29.08.2005 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Processor License
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus License
TeeBI for RAD Studio Suite with source code single license
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Компьютерный дизайн - Все графические редакторы
Все о PHP и даже больше
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100