Bài th c hành s 13
FINE-GRAINED AUDITING
Tóm t t n i dung:
Gi i thi u v Fine-grained Auditing
Các chính sách Fine-grained Auditing
S d ng gói DBMS_FGA trong Oracle
I. Fine-grained Auditing
1. Gi i thi u:
Nh đã đc gi i thi u Lab 12, Standard Auditing c a Oracle có tính c uư ượ
hình cao. B n ghi d u (audit trail) c a nó cung c p m t t p c đnh các s ki n
mà giám sát các quy n, các đi t ng ho c có câu SQL đc s d ng bao g m ượ ượ
nh ng thông tin v môi tr ng và k t qu câu truy v n. T m v c c a standard ườ ế
auditing cũng có th đc m r ng b ng cách s d ng trigger và cung c p ượ
thêm nh ng thông tin ph . Tuy nhiên 2 tiêu chí c a auditing không th th c
hi n b i standard auditing: t i thi u nh ng giám sát không c n thi t, và ch ra ế
nh ng truy c p gây h i.
Fine-grained auditing (FGA) có th th a mãn nh ng nhu c u đó. V i FGA, ta có
th đt ra nhi u đi u ki n giám sát chi ti t h n. Ta không c n ph i thi t l p ế ơ ế
thông s cho AUDIT_TRAIL đ kích ho t ch c năng này, mà ch c n t o ra các
chính sách FGA r i áp d ng chúng trên các ho t đng hay các đi t ng c th ượ
mà ta mu n giám sát. C ch này trong c s d li u ngăn ch n ng i dùng ơ ế ơ ườ
kh i vi c c g ng tìm cách truy v n vòng đ không b giám sát. Nh ng b n ghi
Chương Trình Đào To T Xa KH & KT Máy Tính – Đi hc Bách Khoa TP.HCM
c a FGA s l u trong b ng SYS.FGA_LOG$ và đc truy c p thông qua view ư ượ
DBA_FGA_AUDIT_TRAIL.
2. u th c a Fine-grained Auditing so v i Trigger:Ư ế
Fine-grained auditing th a mãn nh ng nhu c u b ng cách cung c p s hi u qu
v t lên trên ph ng pháp trigger. Trigger ph i gánh ch u quá trình g i hàmượ ươ
PL/SQL khi m i hàng đc x lí và t o ra m t b n ghi audit ch khi m t c t ượ
thích h p b thay đi b i m t câu l nh DML.
M t khác, m t chính sách fine-grainned auditing không ph i gánh ch u chi phí
cho m i hàng. Nó ch giám sát m t l n cho m i chính sách. C th , nó s giám
sát khi m t c t thích h p c th b tác đng b i m t lo i l nh DML xác đnh,
ho c b thay đi b i câu l nh ho c n m trong tiêu chu n ch n l c c a nó
3. Chính sách trong Fine-grained Auditing:
Chính sách FGA có th theo dõi vi c truy xu t d li u d a trên n i dung c a
d li u đó. S d ng chính sách, ta có th ch rõ c t nào và đi u ki n khi nào ta
m i c n ph i ghi l i vi c truy xu t đó. Ta cũng có th cung c p thêm tên hàm
mà ta mu n th c thi khi m t s ki n giám sát x y ra. Hàm đó có th nh c nh
ho c báo đng cho ng i qu n tr hay x lí l i và các b t th ng. ườ ườ
4. Hàm x lí s ki n:
Trong chính sách FGA có th xác đnh đi u ki n khi nào ta truy xu t d li u s
gây ra m t trigger giám sát. Nh ng chính sách đó có th s d ng các x lí s
ki n uy n chuy n đ nh c nh nhà qu n tr khi s ki n trigger x y ra. Ví d ,
m t công ty có th cho phép nhân viên HR truy c p thông tin v l ng mà ươ
không b giám sát, nh ng khi làm vi c v i s l ng l n h n $500k thì s b ư ươ ơ
giám sát. Khi đó vi c đó x y ra h th ng s c nh báo cho nhà qu n tr .
C ch th c hi n c nh báo đó đc th c hi n nh vào m t hàm:ơ ế ượ
PROCEDURE fname(
Chương Trình Đào To T Xa KH & KT Máy Tính – Đi hc Bách Khoa TP.HCM
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2)
AS ...
Chương Trình Đào To T Xa KH & KT Máy Tính – Đi hc Bách Khoa TP.HCM
Trong đó:
fname: tên c a th t c
object_schema: tên c a schema ch a b ng b giám sát .
object_name: tên c a b ng b giám sát.
policy_name: tên c a chính sách
5. Hàm và các c t liên quan trong Fine-grained Auditng:
Đ hi n th c thêm uy n chuy n, ta có th thêm vào các hàm t đnh nghĩa đ
đa ra đi u ki n cho chính sách và xác đnh c t nào c n đc giám sát (c t liênư ượ
quan) đ tinh l c chính sách giám sát. Ví d , hàm đó có th t o ra m t b n ghi
giám sát ch khi m c l ng l n h n $250k b truy c p. ươ ơ
Ch rõ c t liên quan có th giúp gi m các tr ng h p sai cũng nh là các b n ườ ư
ghi không c n thi t, b i vì vi c giám sát ch c n đc th c hi n khi m t c t c ế ượ
th đc tham kh o đn trong câu truy v n. Ví d , m t công ty có th ch ượ ế
mong mu n ghi l i s truy c p thông tin v l ng khi tên c a nhân viên cũng b ươ
truy c p, b i vì n u ch xem thông tin v l ng không mà không bi t tên ng i ế ươ ế ườ
s h u s l ng đó cũng vô nghĩa. Ta cũng có th ch rõ r ng vi c giám sát ch ươ
x y ra khi t t c các c t liên quan đi u đc tham kh o đn, ho c ch m t ượ ế
trong các c t liên quan đc tham kh o. ượ
Trong tr ng h p nhi u h n m t c t liên quan đc ch đnh, Oracle Databaseườ ơ ượ
s sinh ra m t b n ghi giám sát n u câu lênh SQL tham kh o đn b t kì c t nào ế ế
trong nh ng c t đc giám sát đó. ượ
6. Đi u ki n giám sát NULL:
Đ đm báo vi c giám sát các hành đng c th (statement_types) nh h ng ưở
t i nh ng c t đc ch đnh rõ (audit_column), đc t đi u ki n giám sát ượ
(audit_condition) là NULL, đi u đó đc hi u nh là m t đi u ki n đúng. ượ ư
D ng đi u ki n cũ “1=1” không còn đc s d ng nh trong Oracle 9i vì nó ượ ư
không có đc k t qu mong mu n m t cách đáng tin c y. NULL s v n t oượ ế
Chương Trình Đào To T Xa KH & KT Máy Tính – Đi hc Bách Khoa TP.HCM
ra đc s giám sát k c khi không có dòng nào đc x lí, do đó t t c m iượ ượ
ho t đng trên c t liên quan (audit_column) v i chính sách đó đu đc ghi l i. ượ
L u ýư:
S d ng chu i r ng không t ng đng v i giá tr NULL và s d n đn s ươ ươ ế
giám sát đáng tin c y.
N u NULL ho c không có đi u ki n giám sát nào đc đc t , thì b t kìế ượ
hành đng nào tác đng lên m t b ng th a chính sách đó đu khi n cho m t ế
b n ghi giám sát đc t o ra, dù cho có không có dòng nào đc tr v t ượ ượ
câu truy v n.
II. Gói DBMS_FGA trong Oracle
Gói DBMS_FGA cung c p ch c năng b o m t FGA. Đ có th qu n lý các
chính sách giám sát, ta c n ph i có quy n th c thi trên DBMS_FGA (EXCUTE ON
DBMS_FGA)
1. Th t c ADD_POLICY
Th t c này dùng đ t o ra các chính sách giám sát. S chính sách giám sát t i
đa trên m t b ng ho c view là 256.
Cú pháp
DBMS_FGA.ADD_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2,
audit_condition VARCHAR2,
audit_column VARCHAR2,
handler_schema VARCHAR2,
handler_module VARCHAR2,
enable BOOLEAN,
statement_types VARCHAR2,
audit_trail BINARY_INTEGER IN DEFAULT,
Chương Trình Đào To T Xa KH & KT Máy Tính – Đi hc Bách Khoa TP.HCM