Создадим политику безопасности, регулирующую доступ пользователей 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 символов).
Предполагается, что создаваемые уровни линейно упорядочены в соответствии с номером. Содержательно за уровнем удобно видеть степень секретности, причем чем выше степень секретности («открытые данные» - «ограниченный доступ» - «секретно» ...), тем больший нужно связать с ней номер.