Security_05_1312169 - ATBMHTTT-2017/lab02-lab02-1312079-1312169-1312273 GitHub Wiki
- Tạo view thongTinChiTieu bao gồm thông tin bảng chitieu + thuộc tính trưởng dự án (bảng DuAn)
create or replace view thongTinChiTieu
as
select maChiTieu, tenChiTieu, soTien, duAn, truongDA
from ChiTieu, DuAn
where ChiTieu.duAn = DuAn.maDA;
- Cấp quyền select và insert view thongTinChiTieu cho truongDuAn_role
grant select, insert on sys.thongTinChiTieu to truongDuAn_role;
- Tạo policy function lấy mã nhân viên của trưởng dự án
create or replace function truong_du_an (p_schema in varchar2 default null, p_obj in varchar2 default null)
return varchar2
as
user varchar2(100);
begin
user := sys_context('userenv', 'session_user');
return 'truongda = lower('''||user||''')';
end;
- Gắn policy này vào view ChiTieu, trong đó statement_types là select và insert, cột thuộc tính update_check là true.
begin
dbms_rls.add_policy (
object_schema => 'sys',
object_name => 'thongTinChiTieu',
policy_name => 'chitieu_trgduan',
function_schema => null,
policy_function => 'truong_du_an',
statement_types => 'select, insert',
update_check => TRUE
);
end;