Oracle: регулирование доступа к отдельным строкам таблиц
Страница 2. Политика безопасности



Политика безопасности

Создадим политику безопасности, регулирующую доступ пользователей EMPLOYEE и HEAD к номерам телефонов. Она будет базироваться на значении метки в столбце EMPSEC_LABEL, который мы специально добавим в таблицу телефонов позже:

CONNECT lbacsys/lbacsys 

BEGIN
SA_SYSDBA.CREATE_POLICY
   (POLICY_NAME => 'EMPSEC_POLICY'
   , COLUMN_NAME => 'EMPSEC_LABEL');
END;
/

Отключить, снова включить и удалить политику безопасности можно процедурами DISABLE_POLICY, ENABLE_POLICY и DROP_POLICY.

Определим в рамках политики безопасности два уровня секретности:

BEGIN 
SA_COMPONENTS.CREATE_LEVEL
   (POLICY_NAME => 'EMPSEC_POLICY'
   , LEVEL_NUM => 1000
   , SHORT_NAME => 'OPEN'
   , LONG_NAME => 'Open level');

SA_COMPONENTS.CREATE_LEVEL
   (POLICY_NAME => 'EMPSEC_POLICY'
   , LEVEL_NUM => 2000
   , SHORT_NAME => 'LIMITED'
   , LONG_NAME => 'Limited level');
END;
/

Каждый уровень задается тройкой

<номер, краткое название, развернутое название>.

Номер носит технический характер, а развернутое название – характер комментария (но до 30 символов).

Предполагается, что создаваемые уровни линейно упорядочены в соответствии с номером. Содержательно за уровнем удобно видеть степень секретности, причем чем выше степень секретности («открытые данные» - «ограниченный доступ» - «секретно» ...), тем больший нужно связать с ней номер.

 
« Предыдущая статья   Следующая статья »