
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 Tạo Từ Xa KH & KT Máy Tính – Đại học 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 Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM

object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2)
AS ...
Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học 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 Tạo Từ Xa KH & KT Máy Tính – Đại học 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 Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM