Материал: Горбатов Аттестационные испытания автоматизированных систем от 2014

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

'P:TRG:E', TRUE); END;

/

-- проверка добавления меток

SELECT * FROM dba_sa_labels;

8. Применение политики к таблице

connect lbacsys/lbacsys@orcl

--посмотрим перечень столбцов таблицы «Official» до применения политики к таблице

DESCRIBE scott.official;

--свяжем политику с таблицей «Official»

BEGIN sa_policy_admin.apply_table_policy

('official_policy','scott','official','label_default,read_control'); END;

/

--политика, примененная к таблице добавила к ней дополнительный столбец SCOTT_COL.

DESCRIBE scott.official;

--какие политики к каким таблицам применены

SELECT * FROM dba_sa_table_policies;

9. Создание пользователей и наделение их соответствующими правами

connect sys/sys@orcl as sysdba

--сначала удалим пользователей, созданных при предыдущем выполнении лабораторной работы:

DROP USER king; DROP USER jones; DROP USER clark; DROP USER blake; DROP USER allen; DROP USER martin; DROP USER miller; DROP USER james;

331

DROP USER turner; DROP USER ward; DROP USER ford; DROP USER adams; DROP USER smith;

--создадим пользователей заново:

CREATE USER king IDENTIFIED BY king DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;

CREATE USER jones IDENTIFIED BY jones DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

QUOTA 10m ON users;

CREATE USER clark IDENTIFIED BY clark DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;

CREATE USER blake IDENTIFIED BY blake DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

QUOTA 10m ON users;

CREATE USER allen IDENTIFIED BY allen DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;

CREATE USER martin IDENTIFIED BY martin DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

QUOTA 10m ON users;

CREATE USER miller IDENTIFIED BY miller DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

QUOTA 10m ON users;

CREATE USER james IDENTIFIED BY james DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

332

QUOTA 10m ON users;

CREATE USER turner IDENTIFIED BY turner DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

QUOTA 10m ON users;

CREATE USER ward IDENTIFIED BY ward DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;

CREATE USER ford IDENTIFIED BY ford DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10m ON users;

CREATE USER adams IDENTIFIED BY adams DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

QUOTA 10m ON users;

CREATE USER smith IDENTIFIED BY smith DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

QUOTA 10m ON users;

--выдадим созданным пользователям обычные привилегии:

GRANT create session, resource TO king,jones,clark,blake, allen,martin,miller,james,turner,ward,ford,adams,smith;

--выдадим пользователям привилегии для работы с таблицей

«Official»:

GRANT select, update, insert, delete

ON scott.official TO king,jones,clark,blake, allen,martin,miller,james,turner,ward,ford,adams,smith;

10. Назначение меток пользователям

connect lbacsys/lbacsys@orcl

--устанавливаем метки пользователям:

BEGIN sa_user_admin.set_user_labels

('OFFICIAL_POLICY','KING','HS:FIN,ISS,TRG:GD');

333

sa_user_admin.set_user_labels ('OFFICIAL_POLICY','CLARK','S:FIN:NO'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','JONES','S:ISS:NO'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','BLAKE','S:TRG:NO'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','MILLER','P:FIN:E'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','SCOTT','C:ISS:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','FORD','C:ISS:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','WARD','C:TRG:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','ALLEN','C:TRG:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','MARTIN','C:TRG:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','TURNER','C:TRG:SE'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','ADAMS','P:ISS:E'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','SMITH','P:ISS:E'); sa_user_admin.set_user_labels ('OFFICIAL_POLICY','JAMES','P:TRG:E'); END;

/

11. Назначение меток строкам таблицы «Official»

--сначала отключим политику, чтобы пользователь «Scott» мог изменять строки таблицы «Official»:

connect lbacsys/lbacsys@orcl BEGIN

sa_sysdba.disable_policy('official_policy'); END;

334

/

--теперь пользователь «Scott» (в его схеме находится таблица «Official») устанавливает метки строкам таблицs «Official»:

connect scott/scott@orcl

UPDATE scott.official SET scott_col=100

WHERE empno= (SELECT empno FROM scott.emp WHERE ename='KING');

UPDATE scott.official SET scott_col=200

WHERe empno= (SELECT empno FROM scott.emp WHERE ename='CLARK');

UPDATE scott.official SET scott_col=300

WHERE empno= (SELECT empno FROM scott.emp WHERE ename='JONES');

UPDATE scott.official SET scott_col=400

WHERE empno= (SELECT empno FROM scott.emp WHERE ename='BLAKE');

UPDATE scott.official SET scott_col=800

WHERE empno= (SELECT empno FROM scott.emp WHERE ename='MILLER');

UPDATE scott.official SET scott_col=600

WHERE empno= (SELECT empno FROM scott.emp WHERE ename='FORD');

UPDATE scott.official SET scott_col=700

WHERE empno IN (SELECT empno FROM scott.emp WHERE ename='WARD'OR ename='ALLEN' OR ename='TURNER' OR ename='MARTIN');

UPDATE scott.official SET scott_col=900

335