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;