Схожесть рис.13.1 и 13.2 выявляет смысловую обоснованность введения таких же меток для пользователей, занимающих на рис. 13.1 позиции, сходные с позициями чиновников на рис. 13.2.
Рис. 13.2. Компоненты метки строк таблицы «OFFICIAL»
2. Установка Oracle Label Security
Oracle Label Security не устанавливается по умолчанию в версии Oracle 10g Enterprise Edition. Последовательность действий такова:
Надо запустить Oracle Universal Installer. Выберите и установите Oracle Label Security option.
При установке укажите верный путь: Disk_s_programmoy_ustanovki_10g\companion\database\stage\pro
ducts.xml) к файлу «products.jar» на форме «Specify Source Location». На следующей форме «Select Installation Type Oracle Database 10g…» выберите «Custom», на форме «Specify Home Details» ука-
жите верный путь к директории сервера Oracle. После верного выбора на предыдущих шагах появится форма, в которой для Oracle Label Security надо «кликнуть» checkbox (cправа в строке «Oracle Label Security» написано «not installed»), а затем убрать checkbox в строке «Oracle services for Microsoft Transaction Server 10.2…», по-
сле этого надо нажатием «Next» перейти к следующей форме, из которой и надо стартовать установку.
326
После сообщения Oracle Universal Installer об успешном завершении установки необходимо перезагрузить компьютер.
Затем пользователем SYS выполните скрипт ORACLE_ HOME\rdbms\ admin\catols.sql следующим образом:
CONN sys/sys AS SYSDBA;
Здесь предполагается, что пароль для пользователя «sys» установлен «sys».
ORACLE_HOME\rdbms\ admin\catols.sql
ORACLE_HOME можно найти в реестре (Мой компьютер- >HKEY_LOCAL_MACHIN ->
SOFTWARE->ORACLE….).
Скрипт catols.sql выполняет команду SHUTDOWN IMMEDIATE на последнем этапе выполнения. Затем надо еще раз перезагрузить компьютер, после чего запустите БД заново пользователем
«sys».
CONN sys/sys AS SYSDBA startup
SELECT username FROM dba_users;
Вы заметите появление нового пользователя LBACSYS, в схеме которого находятся объекты Oracle Label Security. Его пароль по умолчанию LBACSYS. Этот пользователь будет управлять политиками безопасности.
На заметку. Пользователь «LBACSYS» не удаляется обычным образом (DROP USER LBACSYS CASCADE). Для удаления поль-
зователя «LBACSYS», соединившись пользователем SYS AS SYSDBA, запустите на исполнение файл: ORACLE_HOME/rdbms/ admin/catnools.sql.
Для включения компонента Oracle Label Security в Oracle 11g
необходимо выполнить следующую последовательность шагов:
1.Остановить экземпляр базы данных
Shutdown immediate
2.В панели управления остановить службы, связанные с процессом функционирования экземпляра Oracle Database
3.В окне DOS выполнить следующую последовательность ко-
манд:
cd %ORACLE_HOME%/bin chopt enable lbac
327
4.Запустить в панели управления остановленные ранее службы.
5.Запустить экземпляр Oracle Database командой startup.
3. Создание политики безопасности, воплощающей компоненты меток пользователей (в таблице «Emp»)
и строк (в таблице «Official»)
connect lbacsys/lbacsys@orcl
--Сначала удалим политику, созданную при предыдущем выполнении лабораторной работы
BEGIN sa_sysdba.drop_policy('official_policy'); END;
/
--теперь создадим политику заново
BEGIN sa_sysdba.create_policy('official_policy','scott_col','label_default,re
ad_control'); END;
/
--проверка того, что политика добавилась и действует
SELECT policy_name, status from DBA_SA_POLICIES;
4. Определение обязательного компонента меток ‒ уровней доступа (конфиденциальности)
connect lbacsys/lbacsys@orcl BEGIN sa_components.create_level ('OFFICIAL_POLICY', 40, 'HS', 'Highly_Sensitive'); sa_components.create_level ('OFFICIAL_POLICY', 30, 'S', 'Sensitive'); sa_components.create_level ('OFFICIAL_POLICY', 20, 'C', 'Confidential'); sa_components.create_level
328
('OFFICIAL_POLICY', 10, 'P', 'Public');
END;
/
--проверка созданных уровней
SELECT * FROM dba_sa_levels ORDER BY level_num;
5. Определение второго компонента метки (compartment)
connect lbacsys/lbacsys@orcl BEGIN sa_components.create_compartment ('OFFICIAL_POLICY', 10, 'FIN','FINANCY'); sa_components.create_compartment ('OFFICIAL_POLICY', 20, 'ISS','ISSLEDOVANIE'); sa_components.create_compartment ('OFFICIAL_POLICY', 30,
' TRG', 'TORGOVLYA'); END;
/
--проверка второго компонента метки select * from DBA_SA_COMPARTMENTS;
6. Определение третьего компонента метки (group)
connect lbacsys/lbacsys@orcl BEGIN
sa_components.create_group ('OFFICIAL_POLICY', 100,'GD','Glava_Departamenta'); sa_components.create_group ('OFFICIAL_POLICY', 80,'NO','Nachalnik_Otdela','GD'); sa_components.create_group ('OFFICIAL_POLICY', 40,'SE','Starshiy_Expert','NO'); sa_components.create_group ('OFFICIAL_POLICY', 20,'E','Expert','SE');
END;
329
/
--проверка третьего компонента метки select * from DBA_SA_GROUPS;
7.Создание меток в сочетании трех компонентов
сприсвоением меткам численной величины
connect lbacsys/lbacsys@orcl BEGIN sa_label_admin.create_label ('OFFICIAL_POLICY', '100', 'HS:FIN,ISS,TRG:GD', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '200', 'S:FIN:NO', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '300', 'S:ISS:NO', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '400', 'S:TRG:NO', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '500', 'C:FIN:SE', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '600', 'C:ISS:SE', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '700', 'C:TRG:SE', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '800', 'P:FIN:E', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '900', 'P:ISS:E', TRUE); sa_label_admin.create_label ('OFFICIAL_POLICY', '1000',
330