ự
ố
Bài th c hành s 9
ORACLE LABEL SECURITY (2)
ắ ộ
Tóm t
t n i dung:
(cid:0) ầ ủ Các thành ph n c a nhãn trong Oracle Label Security
(cid:0) ữ ệ Nhãn d li u (data label)
ữ ệ
ầ ủ I. Các thành ph n c a nhãn d li u
A.
Lý thuy tế
1.
ữ ệ Nhãn d li u (data label)
ế ệ ữ ệ ả ằ ị ư Nh đã bi ộ ệ ố t, mô hình MAC b o v d li u b ng cách quy đ nh m t h th ng
ứ ộ ố ượ ể ễ ậ ữ ệ ấ ọ bi u di n m c đ quan tr ng, bí m t cho các đ i t ng d li u theo c p b c t ậ ừ
ứ ộ ụ ể ấ ạ ậ ố ộ ấ cao xu ng th p. Ví d , m t công ty có th phân lo i m c đ bí m t thành 4 c p
ộ ả ứ ậ ầ ố ậ ả ớ v i m c đ b o m t gi m d n: TOP SECRET (t ậ i m t), SECRET (bí m t),
ộ ộ ỉ ư CONFIDENTIAL (ch l u hành n i b ), PUBLIC (công khai).
Trong OLS, Oracle s d ng các
ử ụ ể ớ ữ ệ ữ ệ (data label) đ phân l p d li u nhãn d li u
ứ ộ ộ ố ủ ạ ả ỗ theo m c đ nh y c m c a nó và m t s tiêu chí khác. Nói cách khác, m i nhãn
ề ứ ộ ố ữ ệ ứ ủ ạ ả ộ ữ ệ ẽ d li u s ch a thông tin v m c đ nh y c m c a d li u và m t s tiêu chí
ườ ấ ế ữ ệ ứ ể ể ả ộ c ng thêm mà ng i dùng ph i đáp ng đ có th truy xu t đ n d li u đó.
Nhãn d li u là 1 thu c tính đ n g m 3 lo i thành ph n:
ữ ệ ạ ộ ơ ồ ầ level, compartment,
group.
N u m t chính sách đ
ế ộ ượ ộ ả ụ ả ỗ c áp d ng cho m t b ng, thì m i hàng trong b ng đó
ữ ệ ể ể ộ ả ễ ộ nhãn d li u (data label) ẽ ượ s đ c gán m t ậ ủ ứ đ bi u di n m c đ b o m t c a
ữ ệ ị ủ ượ ư ứ ủ ộ hàng d li u đó. Giá tr c a nhãn đ c l u trong c t ch a thông tin c a chính
ạ ượ ụ ả sách (c t đ ộ ượ ự ộ c t đ ng t o thêm khi chính sách đ c áp d ng cho b ng).
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
2. Các thành ph n c a nhãn
ầ ủ
a. Level
M i nhãn có đúng 1
ỗ ữ ệ ị ộ ủ ể ạ ả level bi u th đ nh y c m c a d li u. OLS cho phép
ố t i đa 10,000 level trong 1 chính sách.
Đ i v i m i level, ta c n đ nh nghĩa 1 d ng s và 2 d ng chu i cho nó. VD:
ố ớ ầ ạ ạ ỗ ố ỗ ị
ỗ ạ ỗ ạ ắ D ng chu i dài D ng chu i ng n
HIGHLY_SENSITIVE SENSITIVE D ngạ số 40 30 HS S
CONFIDENTIAL 20 C
PUBLIC 10 P
D ng s (numeric form)
ạ ố ố ủ ể ạ ả ị ả : d ng s c a level có th có gi tr trong kho ng 0
ạ ả ị ộ 9999. Level có giá tr càng cao thì đ nh y c m càng tăng. Trong VD trên,
ạ ả ử ụ ấ ộ ộ ỗ Highly_sensitive có đ nh y c m cao nh t. User nên tránh s d ng m t chu i
ầ ự ị ể ể ủ ế ễ ể ộ tu n t liên ti p các giá tr đ bi u di n cho 1 b level c a nhãn đ tránh tình
ả ị ạ ớ ạ ộ tr ng khi có level m i thêm vào thì ph i đ nh nghĩa l i toàn b các level.
D ng chu i dài (long form)
ạ ỗ ứ ố ự ế ầ : ch a t i đa 80 ký t , cho bi ủ ủ t tên đ y đ c a
level.
D ng chu i ng n (short form)
ạ ắ ỗ ứ ố ự ọ ủ ạ : ch a t i đa 30 ký t , là d ng rút g n c a tên
ử ụ ế ầ ả ỗ ọ level. M i khi c n tham kh o đ n level ta s d ng tên rút g n này.
b. Compartment
M i nhãn có th có 1 ho c nhi u ho c không có
ể ề ặ ặ ỗ compartment nào. OLS cho
ố phép t i đa 10,000 compartment trong 1 chính sách.
Compartment giúp cho vi c phân lo i d li u theo lĩnh v c, chuyên ngành, d
ạ ữ ệ ự ệ ự
ể ệ ữ ệ ứ ự ứ ủ ạ ả ộ ấ án,…ch không th hi n s phân c p m c đ nh y c m c a d li u đó.
ữ ệ ế ộ Nghĩa là n u ta có 2 d li u thu c 2 compartment C1 và C2, thì có nghĩa là 2
ự ứ ộ ữ ệ ữ ệ d li u đó thu c 2 lĩnh v c khác nhau là C1 và C2 ch không có nghĩa d li u
ơ ữ ệ ạ ả ộ ộ thu c C1 nh y c m h n d li u thu c C2 (hay ng ượ ạ c l i).
ố ớ ạ ầ ạ ỗ ố ỗ ị Đ i v i m i compartment, ta c n đ nh nghĩa 1 d ng s và 2 d ng chu i. VD:
ố ỗ ạ ạ D ng sạ D ng chu i dài ỗ D ng chu i
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
85 65 FINANCIAL CHEMICAL ng nắ FINCL CHEM
45 OPERATIONAL OP
D ng s (numeric form)
ạ ố ố ủ ể ạ ả ị : d ng s c a compartment có th có gi tr trong
ố ủ ị ủ ế ả kho ng 09999. Nó không liên quan gì đ n con s c a level. Giá tr c a nó
ứ ự ể ị ủ ể ộ ị dùng đ quy đ nh th t ố hi n th c a các compartment trong m t label. Đ i
ư ẽ ạ ớ v i VD trên, ta s có các nhãn d ng nh sau:
S:OP,CHEM,FINCL (do OP có giá tr nh nh t nên nó đ
ấ ỏ ị ượ ể c hi n th tr ị ướ c
nh t)ấ
D ng chu i dài (long form)
ạ ỗ ố ự ầ ủ ủ : t i đa 80 ký t , là tên đ y đ c a compartment.
D ng chu i ng n (short form)
ạ ắ ỗ ố ự ủ ạ ọ : t i đa 30 ký t , là d ng rút g n c a tên
ử ụ ế ầ ả ọ compartmet. Khi c n tham kh o đ n compartment ta s d ng tên rút g n này.
c. Group
M i nhãn có th có 1 ho c nhi u ho c không có
ể ề ặ ặ ỗ iố group nào. OLS cho phép t
đa 10,000 group trong 1 chính sách.
Group giúp xác đ nh nh ng t
ữ ị ổ ứ ở ữ ậ ặ ơ ộ ả ch c, c quan, b ph n nào s h u ho c qu n
ữ ệ ườ ể ệ ơ ấ ủ ậ lý d li u (thông th ng nó th hi n c c u c a công ty). Do v y group có
ể ấ ộ ộ ộ ề ấ c u trúc cây phân c p. M t group có th thu c m t group cha và có nhi u
ữ ệ ộ ượ ư ộ ộ group con. D li u thu c m t group con thì đ c xem nh cũng thu c group
cha. VD:
ạ ỗ ạ D ng chu i dài Group cha D ngạ số ỗ D ng chu i ng nắ
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
1000 1100 WESTERN_REGION WR_SALES WR WR_SAL WR
1200 WR_HUMAN_RESOURCES WR_HR WR
1300 WR_FINANCE WR_FIN WR
1310 WR_ACCOUNTS_PAYABLE WR_AP WR_FIN
1320 WR_ACCOUNTS_RECEIVABLE WR_AR WR_FIN
D ng s (numeric form)
ạ ố ố ủ ể ạ ả ị ả : d ng s c a group có th có gi tr trong kho ng 0
ố ủ ị ủ ế ể 9999. Nó không liên quan gì đ n con s c a level. Giá tr c a nó dùng đ quy
ứ ự ể ố ớ ị ủ ẽ ị đ nh th t ộ hi n th c a các group trong m t label. Đ i v i VD trên, ta s có
ư ạ các nhãn d ng nh sau:
S:CHEM:WR,WR_HR (WR có giá tr nh h n WR_HR nên đ
ỏ ơ ị ượ ị ướ ể c hi n th tr c)
D ng chu i dài (long form)
ạ ỗ ứ ố ự ế : ch a t i đa 80 ký t , cho bi ủ t tên c a group.
D ng chu i ng n (short form)
ắ ạ ỗ ứ ố ự ọ ủ ạ : ch a t i đa 30 ký t , là d ng rút g n c a tên
ử ụ ế ầ ả ỗ ọ group. M i khi c n tham kh o đ n group ta s d ng tên rút g n này.
ự
B.
Th c hành
1.
ạ T o level
Ở ầ ẽ ầ ạ ph n này ta s t o các thành ph n level cho chính sách
ạ ACCESS_LOCATIONS mà ta đã t o trong bài lab “ Oracle Label Security (1)”.
Ta quy đ nh chính sách ACCESS_LOCATIONS c a ta có 3 level (theo th t
ủ ị ứ ự
ộ ả ứ ậ ả ầ m c đ b o m t gi m d n): SENSITIVE, CONFIDENTIAL, PUBLIC. Ta dùng
CONN sec_admin/secadmin;
BEGIN
sa_components.create_level
(policy_name => 'ACCESS_LOCATIONS',
long_name => 'PUBLIC',
short_name => 'PUB',
level_num => 1000);
END;
/
ể ạ procedure SA_COMPONENTS.CREATE_LEVEL đ t o ra các level:
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
EXECUTE sa_components.create_level
('ACCESS_LOCATIONS',2000,'CONF','CONFIDENTIAL');
EXECUTE sa_components.create_level
('ACCESS_LOCATIONS',3000,'SENS','SENSITIVE');
ể ự ấ ạ Đo n code trên cho ta th y 2 cách khác nhau đ th c thi procedure. Ng ườ ọ i đ c
ọ ố ầ cũng c n chú ý cách ch n s cho các level.
ủ ủ ể ầ ọ ổ ủ ụ Đ thay đ i đ y đ và tên rút g n c a level, ta dùng th t c
ế ượ ấ ở SA_COMPONENTS.ALTER_LEVEL. N u level đang đ ộ c dùng b i ít nh t m t
ữ ệ ủ ủ ư ể ể ầ ổ nhãn d li u nào đó, ta có th thay đ i tên đ y đ c a nó nh ng không th thay
ọ ườ ọ ổ ố ạ ể ề ợ ổ đ i tên rút g n. Trong m i tr ệ ng h p, ta đ u không th thay đ i s đ i di n
CONN sec_admin/secadmin;
EXECUTE sa_components.create_level
('ACCESS_LOCATIONS',4000,'HS','HIGHLY SECRET');
BEGIN
sa_components.alter_level
(policy_name => 'ACCESS_LOCATIONS',
level_num => 4000,
new_short_name => 'TS',
new_long_name => 'TOP SECRET');
END;
/
BEGIN
sa_components.alter_level
(policy_name => 'ACCESS_LOCATIONS',
short_name => 'TS',
new_long_name => 'TOP SENSITIVE');
END;
/
ủ c a level.
ủ ụ ể ộ ế Đ xóa m t level ta dùng th t c SA_COMPONENTS.DROP_LEVEL. N u
CONN sec_admin/secadmin;
ượ ử ụ ở ấ ỳ ể level đang đ ữ ệ c s d ng b i b t k nhãn d li u nào, ta không th xóa nó.
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
BEGIN
sa_components.drop_level
(policy_name => 'ACCESS_LOCATIONS',
short_name => 'TS');
END;
/
2.
ạ T o compartment
Gi
ả ử s chúng ta có 3 compartment là: Finance, Sales & Marketing, Human
Resources. ể Đ ạ t o compartment chúng ta dùng procedure
CONN sec_admin/secadmin;
SA_COMPONENTS.CREATE_COMPARTMENT:
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
BEGIN
sa_components.create_compartment
(policy_name => 'ACCESS_LOCATIONS',
long_name => 'SALES_MARKETING',
short_name => 'SM',
comp_num => 2000);
END;
/
EXECUTE sa_components.create_compartment
('ACCESS_LOCATIONS',3000,'FIN','FINANCE');
EXECUTE sa_components.create_compartment
('ACCESS_LOCATIONS',1000,'HR','HUMAN RESOURCES');
ủ ủ ể ầ ổ ủ ụ ọ Đ thay đ i đ y đ và tên rút g n c a compartment, ta dùng th t c
ủ ề ệ ệ SA_COMPONENTS.ALTER_COMPARTMENT. Các đi u ki n c a vi c thay
CONN sec_admin/secadmin;
EXECUTE sa_components.create_compartment
('ACCESS_LOCATIONS',4000,'PR','PUBLIC RELATIONS');
BEGIN
sa_components.alter_compartment
(policy_name => 'ACCESS_LOCATIONS',
comp_num => 4000,
new_short_name => 'PU',
new_long_name => 'PURCHASING');
END;
/
BEGIN
sa_components.alter_compartment
(policy_name => 'ACCESS_LOCATIONS',
short_name => 'PU',
new_long_name => 'PURCHASE');
END;
/
ư ố ớ ủ ố ộ ổ đ i thu c tính c a compartment gi ng nh đ i v i level.
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
Đ xóa m t compartment ta dùng th t c SA_COMPONENTS.DROP_
ủ ụ ể ộ
ượ ử ụ ở ấ ỳ ế COMPARTMENT. N u compartment đang đ c s d ng b i b t k nhãn d ữ
CONN sec_admin/secadmin;
BEGIN
sa_components.drop_compartment
(policy_name => 'ACCESS_LOCATIONS',
short_name => 'PU');
END;
/
ể ệ li u nào, ta không th xóa nó.
3.
ạ T o group
Chính sách c a chúng ta s có 1 group c p cao nh t là Corporate (CORP) t
ủ ẽ ấ ấ ươ ng
ứ ạ ộ ớ ấ ộ ở ng v i c p đ toàn công ty. Công ty này có các chi nhánh ho t đ ng 3 n ướ c:
Ứ ớ ỹ ỗ M (American United States), Anh (United Kingdom) và Canada. ng v i m i
ự ạ khu v c đó ta t o 1 group con cho group CORP.
Ta dùng procedure SA_COMPONENTS.CREATE_GROUP đ t o ra các group:
CONN sec_admin/secadmin;
BEGIN
sa_components.create_group
(policy_name => 'ACCESS_LOCATIONS',
long_name => 'CORPORATE',
short_name => 'CORP',
group_num => 10,
parent_name => NULL);
END;
/
EXECUTE SA_COMPONENTS.CREATE_GROUP
('ACCESS_LOCATIONS',30,'US','UNITED STATES','CORP');
EXECUTE SA_COMPONENTS.CREATE_GROUP
('ACCESS_LOCATIONS',50,'UK','UNITED KINGDOM','CORP');
EXECUTE SA_COMPONENTS.CREATE_GROUP
('ACCESS_LOCATIONS',70,'CA','CANADA','CORP');
ể ạ
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
ủ ủ ể ầ ổ ọ ủ ụ Đ thay đ i đ y đ và tên rút g n c a group, ta dùng th t c
ủ ề ệ ệ ổ ộ SA_COMPONENTS.ALTER_GROUP. Các đi u ki n c a vi c thay đ i thu c
CONN sec_admin/secadmin;
EXECUTE sa_components.create_group
('ACCESS_LOCATIONS',90,'FR','FRANCE','CORP');
BEGIN
sa_components.alter_group
(policy_name => 'ACCESS_LOCATIONS',
group_num => 90,
new_short_name => 'RFR',
new_long_name => 'REPUBLIC FRANCE');
END;
/
BEGIN
sa_components.alter_group
(policy_name => 'ACCESS_LOCATIONS',
short_name => 'RFR',
new_long_name => 'PURCHASE');
END;
/
ư ố ớ ủ ố tính c a group gi ng nh đ i v i level.
ủ ụ ể ộ ế Đ xóa m t group ta dùng th t c SA_COMPONENTS.DROP_GROUP. N u
CONN sec_admin/secadmin;
BEGIN
sa_components.drop_group
(policy_name => 'ACCESS_LOCATIONS',
short_name => 'RFR');
END;
/
ượ ử ụ ở ấ ỳ ể group đang đ ữ ệ c s d ng b i b t k nhãn d li u nào, ta không th xóa nó.
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
ế ề
ữ ệ
II. Chi ti
t v nhãn d li u
A. Lý thuy tế
1.
ữ ệ ủ Cú pháp c a nhãn d li u
Hình sau minh h a quan h c a các thành ph n trong 1 nhãn:
ệ ủ ầ ọ
M t nhãn d li u b t k có cú pháp sau:
ấ ỳ ữ ệ ộ
LEVEL : COMPARTMENT1, ..., COMPARTMENTn : GROUP1, ..., GROUPn
ự ả ộ ể ứ ố ự ồ ỗ Chu i ký t mô t m t nhãn có th ch a t i đa 4000 ký t , bao g m các ký t ự
ự ữ ấ ả ạ ướ ố s , ký t ắ ch , kho ng tr ng, d u g ch d i (_).
Các nhãn không phân bi
ệ ữ ườ ữ ỗ ượ ư t ch hoa, ch th ng. Tuy nhiên chu i đ c l u tr ữ
ẽ ể ị ướ ạ ữ trong data dictionary s hi n th d i d ng ch hoa.
D u hai ch m (“:”) dùng đ phân cách gi a các lo i thành ph n. VD:
SENSITIVE
HIGHLY_SENSITIVE:FINANCIAL
SENSITIVE::WESTERN_REGION
CONFIDENTIAL:FINANCIAL:VP_GRP
SENSITIVE:FINANCIAL,CHEMICAL:EASTERN_REGION,WESTERN_REGION
ữ ể ấ ấ ầ ạ
ộ ọ ệ ế ợ level, compartment, group ụ Hình sau đây là m t ví d minh h a cho vi c k t h p
ạ ữ ệ ủ ộ ổ ứ ể đ phân lo i d li u c a m t t ch c:
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
Không ph i m i t
ọ ổ ợ ủ ề ả ầ ộ ợ h p c a các thành ph n đ u hình thành nên m t nhãn h p
ữ ị ỉ ổ ợ ầ ệ l . Ta ch đ nh nghĩa nh ng nhãn nào có t h p thành ph n mà ta có nhu c u s ầ ử
ậ ự ụ d ng th t s trong th c t ự ế .
S d ng package SA_COMPONENTS đ đ nh nghĩa các thành ph n c a nhãn.
ầ ủ ử ụ ể ị
S d ng package SA_LABEL_ADMIN đ t o và qu n lý nhãn.
ử ụ ể ạ ả
2.
Label Tag
Khi m t nhãn d li u m i đ
ữ ệ ớ ượ ạ ẽ ự ộ ạ ộ c t o, Oracle s t ộ đ ng t o cho nhãn đó m t
ố ạ ệ ượ ọ con s đ i di n đ c g i là label tag.
M i ỗ label tag xác đ nh duy nh t 1 nhãn trong toàn b các nhãn c a t
ủ ấ ả ấ ộ ị t c các
ơ ở ữ ệ ộ ơ ở ữ ệ chính sách có trong c s d li u đó. Nói cách khác, trong m t c s d li u,
ấ ỳ ặ không có b t k 2 label tag nào (cùng 1 chính sách ho c khác chính sách) có giá tr ị
ố gi ng nhau.
Giá tr c a
ố ạ ư ệ ấ ị ủ label tag không có tính ch t so sánh nh con s đ i di n cho level.
Đây là con s th t s đ
ố ậ ự ượ ư ứ ủ ộ c l u vào c t ch a thông tin nhãn c a chính sách
ả ượ ả ệ trong các b ng đ c b o v .
Ngoài hình th c t o t
ứ ạ ự ộ ự ị ị đ ng, Oracle cũng cho phép ta t đ nh nghĩa giá tr tag
ụ ử ế ễ ằ ắ ả cho các nhãn nh m m c đích d qu n lý, s p x p, so sánh và x lý trong quá
ụ ả ị ướ ị trình qu n tr . Trong ví d bên d i, ta quy đ nh các nhãn có level
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
ắ ầ ố ắ ầ ằ “highly_sensivitve” (H) có tag b t đ u b ng s 4, “sensitive” (S) có tag b t đ u
ố ằ b ng s 3,…
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
ữ ệ Label Tag Nhãn d li u
10000 20000 P C
21000 C:FNCL
21100 30000 C:FNCL,OP S
31110 40000 S:OP:WR HS
42000 HS:OP
ự B. Th c hành
ướ ở ươ ớ ướ ứ ệ Các b ừ c ta v a làm ầ ph n I t ng ng v i b ự c 2 trong quy trình hi n th c
Ở ầ ẽ ự ệ ướ ậ ự ầ ạ ừ OLS. ph n này ta s th c hi n b c 3: t o các nhãn th t s c n dùng t các thành
ầ ph n trên.
ủ ụ ể ạ Đ t o nhãn ta dùng th t c SA_LABEL_ADMIN.CREATE_LABEL. Khi s ử
ủ ụ ể ạ ả ự ị ố ụ d ng th t c này đ t o nhãn, ta ph i t đ nh ra ộ ố label tag (là m t s nguyên có t i đa
CONN sec_admin/secadmin;
BEGIN
sa_label_admin.create_label
(policy_name => 'ACCESS_LOCATIONS',
label_tag => 10000,
label_value => 'PUB');
END;
/
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',20000,'CONF');
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',20010,'CONF::US');
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',20020,'CONF::UK');
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',20030,'CONF::CA');
ữ ố ượ ạ 8 ch s ) cho nhãn đ c 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
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',21020,'CONF:HR:UK');
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',22040,'CONF:SM:UK,CA');
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',34000,'SENS:SM,FIN');
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',39090,'SENS:HR,SM,FIN:CORP');
ườ ệ ố ự ự Thông th ng, khi xây d ng chính sách, ta cũng nên xây d ng h th ng quy
ướ ể ệ ợ ệ ả ạ c đ t ặ label tag đ ti n l i trong vi c qu n lý. Trong đo n code trên, ta quy ướ c
ữ ố ầ ể ễ ữ ố ế ế ch s đ u tiên bi u di n level (1 là PUB, 2 là CONF, 3 là SENS), 2 ch s k ti p
ễ ể ế ữ ố ố bi u di n các compartment (00 cho bi ể t không có compartment), 2 ch s cu i bi u
ễ ế di n group (00 cho bi t không có group).
ộ ố ỉ ạ ự ứ ư ể ầ ọ ạ (L u ý là trong ph n th c hành này ch t o m t s nhãn đ minh h a, ch không t o
ầ ế ế ấ ả h t t t c các nhãn c n thi t.)
ủ ụ ể ổ Đ thay đ i nhãn, ta dùng th t c SA_LABEL_ADMIN.ALTER_LABEL. Ta có
ị ủ ể ể ổ ổ ư th thay đ i giá tr c a nhãn nh ng không th thay đ i giá tr c a ị ủ label tag. Do v y,ậ
ổ ượ ủ ể ạ ả ả ậ ầ ữ ệ ộ đ nh y c m c a d li u có th thay đ i đ c mà không c n ph i c p nh t l ậ ạ i
CONN sec_admin/secadmin;
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',30000,'SENS');
EXECUTE sa_label_admin.create_label
('ACCESS_LOCATIONS',30090,'SENS::CORP');
BEGIN
sa_label_admin.alter_label
(policy_name => 'ACCESS_LOCATIONS',
label_tag => 30000,
new_label_value => 'SENS:SM');
sa_label_admin.alter_label
ứ ữ ệ ị ủ ư ứ ả ả b ng ch a d li u đó, do trong b ng ch l u ỉ ư label tag ch không l u giá tr c a nhãn.
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
(policy_name => 'ACCESS_LOCATIONS',
label_value => 'SENS:SM',
new_label_value => 'SENS:HR');
END;
/
BEGIN
sa_label_admin.drop_label
(policy_name => 'ACCESS_LOCATIONS',
label_value => 'SENS:HR');
END;
/
BEGIN
sa_label_admin.drop_label
(policy_name => 'ACCESS_LOCATIONS',
label_tag => 30090);
END;
/
ủ ụ ể ằ Ta có th xóa nhãn b ng th t c SA_LABEL_ADMIN.DROP_LABEL:
III. Bài t pậ
1. T o các thành ph n nhãn cho chính sách region_policy (trong bài t p c a Lab 8):
ậ ủ ạ ầ
Compartment: MANAGEMENT, EMPLOYEE
Group: REGION NORTH, REGION SOUTH, REGION EAST, REGION WEST
Level: level 1, level 2, level 3
2. T o b ng CUSTOMERS đ áp d ng chính sách trên. Sau đó insert d li u vào.
ữ ệ ụ ể ả ạ
customers (
id NUMBER(10) NOT NULL,
cust_type VARCHAR2(10),
first_name VARCHAR2(30),
last_name VARCHAR2(30),
region VARCHAR2(5),
credit NUMBER(10,2),
CONSTRAINT customer_pk PRIMARY KEY (id));
ộ ố ộ ị ủ Vùng giá tr c a m t s c t:
Chương Trình Đào Tạo Từ Xa
KH & KT Máy Tính – Đại học Bách Khoa TP.HCM
cust_type : silver, gold, platinum
region: north, west, east, south
ậ ữ ệ ủ ầ ọ ườ ợ ươ ứ ả ớ credit: h c viên c n nh p d li u đ cho 3 tr ng h p t ng ng v i 3 kho ng giá
ị ừ ế tr >2000, t 500 đ n 2000, < 500.
ữ ệ ẽ ượ ử ụ ả B ng d li u này s đ c s d ng cho bài lab 10.