Bài thực hành Bảo mật hệ thống thông tin số 3: Quyền và Role có nội dung trình bày về quyền (privilege), role, data Dictionary để quản trị người dùng trong hệ thống bảo mật thông tin. Mời các bạn cùng tham khảo chi tiết nội dung tài liệu.
Trang 1Bài th c hành s 3 ự ố
Tóm t t n i dung: ắ ộ
Quy n (privilege)ề
Role
Data Dictionary
I Quy n và Role ề
A. Lý thuy t ế
1 Quy n (privilege)ề
M t quy n là 1 s cho phép th c hi n 1 câu l nh SQL nào đó ho c độ ề ự ự ệ ệ ặ ược phép truy xu t đ n m t đ i tấ ế ộ ố ượng nào đó (vd: quy n t o b ng CREATE TABLE,ề ạ ả quy n connect đ n c s d li u CREATE SESSION, quy n SELECT trên m tề ế ơ ở ữ ệ ề ộ
b ng c th nào đó,…).ả ụ ể
Ch c p cho user chính xác nh ng quy n mà user c n đ n. Vi c c p d th aỉ ấ ữ ề ầ ế ệ ấ ư ừ
nh ng quy n không c n thi t có th gây nguy h i cho vi c b o m t h th ng.ữ ề ầ ế ể ạ ệ ả ậ ệ ố
Có 2 lo i quy n:ạ ề
Quy n h th ng (System Privilege):ề ệ ố
o Là quy n th c hi n m t tác v CSDL c th ho c quy n th c hi n m tề ự ệ ộ ụ ụ ể ặ ề ự ệ ộ
lo i hành đ ng trên t t c nh ng đ i tạ ộ ấ ả ữ ố ượng schema c a h th ng. Vd:ủ ệ ố quy n ALTER SYSTEM, quy n CREATE TABLE, quy n DELETE ANYề ề ề TABLE (xóa các hàng c a b t k b ng nào trong CSDL),…ủ ấ ỳ ả
o User có th c p 1 quy n h th ng n u có m t trong các đi u ki n sau:ể ấ ề ệ ố ế ộ ề ệ
User đã được c p quy n h th ng đó v i tùy ch n WITH ADMINấ ề ệ ố ớ ọ OPTION
User có quy n ề GRANT ANY PRIVILEGE
Trang 2 Quy n đ i tề ố ượng (Schema Object Privilege ho c Objectặ Privilege):
o Là quy n th c hi n m t hành đ ng c th trên m t đ i tề ự ệ ộ ộ ụ ể ộ ố ượng schema cụ
th Vd: quy n xóa các hàng d li u kh i b ng Department.ế ề ữ ệ ỏ ả
o Có nhi u quy n đ i tề ề ố ượng khác nhau dành cho các lo i đ i tạ ố ượng schema khác nhau
o Dùng đ qu n lý vi c truy xu t đ n các đ i tể ả ệ ấ ế ố ượng schema c th nào đó.ụ ể
o User có th c p 1 quy n đ i tể ấ ề ố ượng n u có m t trong các đi u ki n sau:ế ộ ề ệ
User có t t c m i quy n đ i tấ ả ọ ề ố ượng trên t t c các đ i tấ ả ố ượng thu cộ schema c a mình. Vì v y user có quy n c p b t k quy n đ i tủ ậ ề ấ ấ ỳ ề ố ượ ng trên b t k đ i tấ ỳ ố ượng nào thu c s h u c a mình cho b t c user nàoộ ở ữ ủ ấ ứ khác
User có quy n GRANTề ANY OBJECT PRIVILEGE
User được c p quy n đ i tấ ề ố ượng đó v i tùy ch n WITH GRANTớ ọ OPTION
2 Role
Role là m t t p h p bao g m các quy n và các role khác. ộ ậ ợ ồ ề
Role được gán cho các user ho c các role khác.ặ
Role giúp cho vi c qu n tr ngệ ả ị ười dùng d dàng và ti t ki m công s c h n.ễ ế ệ ứ ơ
Có m t s role có s n do h th ng đ nh nghĩa(vd: DBA, RESOURCE,ộ ố ẵ ệ ố ị CONNECT,…) nh ng đa ph n các role là do ngư ầ ười qu n tr CSDL t o ra. ả ị ạ
Role không ph i là m t đ i tả ộ ố ượng schema (schema object) nên không đượ ư c l u
tr trong schema c a user t o ra nó. Do v y, user t o ra m t role có th b xóa màữ ủ ạ ậ ạ ộ ể ị không nh hả ưởng đ n role đó.ế
User có th c p 1 role n u có m t trong các đi u ki n sau:ể ấ ế ộ ề ệ
User đã t o ra role đó.ạ
User đã đượ ấc c p role đó v i tùy ch n WITH ADMIN OPTION.ớ ọ
User có quy n GRANT ANY ROLE.ề
Trang 3B. Th c hành ự
1 T o ROLEạ
T o m t role m i v i câu l nh:ạ ộ ớ ớ ệ
CREATE ROLE myrole;
Role created.
L u ý, đ t o đư ể ạ ược role, ph i có quy n h th ng CREATE ROLE.ả ề ệ ố
2 L nh GRANTệ
a. Gán quy n h th ng/role:ề ệ ố
Ta dùng cú pháp dưới đây đ gán các quy n h th ng/role cho các user/roleể ề ệ ố khác:
Ví d :ụ
GRANT DELETE ANY TABLE TO salapati;
Grant succeeded.
GRANT CREATE USER TO myrole;
Grant succeeded.
GRANT myrole TO salapati;
Grant succeeded.
GRANT myrole TO lavender;
Grant succeeded.
Xem l nh sau:ệ
GRANT CREATE SESSION TO lavender IDENTIFIED BY purple.
Grant succeeded.
V i câu l nh v a r i, n u user ớ ệ ừ ồ ế lavender đã t n t i, password c a ồ ạ ủ lavender
s đẽ ược thay đ i thành ổ purple. Ngượ ạc l i, h th ng s t o ra 1 ngệ ố ẽ ạ ười dùng
m i có username là ớ lavender và password là purple. Sinh viên t tìm hi uự ể xem đ câu l nh trên có th th c hi n để ệ ể ự ệ ược, user c n ph i có quy n gì?ầ ả ề
Trang 4 Dùng t khóa PUBLIC n u mu n c p quy n/role cho m i user:ừ ế ố ấ ề ọ
GRANT CREATE SESSION TO PUBLIC;
Grant succeeded.
Dùng t khóa ALL PRIVILEGES n u mu n c p t t c các quy n h th ng (trừ ế ố ấ ấ ả ề ệ ố ừ quy n SELECTề ANY DICTIONARY):
GRANT ALL PRIVILEGES TO salapati;
Grant succeeded.
Đ th c hi n câu l nh trên thành công thì user c n ph i có quy n gì?ể ự ệ ệ ầ ả ề
Tùy ch n WITH ADMIN OPTION s cho phép ngọ ẽ ườ ượ ấi đ c c p role/quy n:ề
C p l i role/quy n đó cho m t user ho c role khác (có ho c không có tùyấ ạ ề ộ ặ ặ
ch n WITH ADMIN OPTION).ọ
Thu h i l i role/quy n đó t m t user ho c role b t k ồ ạ ề ừ ộ ặ ấ ỳ
Thay đ i role đó b ng l nh ALTER ROLE.ổ ằ ệ
Xóa role đó.
Ví d :ụ
GRANT CREATE SESSION TO salapati WITH ADMIN OPTION;
Grant succeeded.
b. Gán quy n đ i tề ố ượng:
Ví d :ụ
Trang 5GRANT DELETE ON mytable TO salapati;
GRANT SELECT ON mytable TO public;
GRANT SELECT,INSERT,UPDATE,DELETE ON mytable TO lavender; GRANT SELECT ON salapati.xyz TO myrole;
Dùng t khóa ALL [PRIVILEGES] khi mu n c p t t c các quy n đ i từ ố ấ ấ ả ề ố ượng mà user có trên 1 đ i tố ượng nào đó (v i đi u ki n user ph i có quy n c p nh ngớ ề ệ ả ề ấ ữ quy n đó):ề
GRANT ALL ON salapati.xyz TO paris;
GRANT ALL PRIVILEGES ON salapati.xyz TO paris;
N u ch mu n c p quy n trên vài c t nào đó c a table ho c view, ta ch ra c thế ỉ ố ấ ề ộ ủ ặ ỉ ụ ể tên các c t đó:ộ
GRANT UPDATE (name) ON salapati.xyz TO myrole;
Grant succeeded.
L u ý là ta ch có th ch ra các c t c th khi c p quy n INSERT và UPDATE.ư ỉ ể ỉ ộ ụ ể ấ ề
Dùng tùy ch n WITH GRANT OPTION khi mu n user đọ ố ược c p quy n có thấ ề ể
c p quy n đó cho user/role khác. Tuy nhiên ch đấ ề ỉ ược dùng tùy ch n này khi c pọ ấ quy n cho m t user hay PUBLIC:ề ộ
GRANT ALL ON salapati.xyz TO paris WITH GRANT OPTION;
c.Xem thông tin các quy n h th ng đã đề ệ ố ược gán cho user hi n t i:ệ ạ
SELECT * FROM user_sys_privs;
Xem thông tin các quy n đ i tề ố ượng đã được gán cho user hi n t i:ệ ạ
SELECT * FROM user_tab_privs_recd;
d. Sinh viên tham kh o danh sách các quy n h th ng, quy n đ iả ề ệ ố ề ố
tượng trong ph n mô t l nh GRANT c a cu n SQL Reference thu c Oracleầ ả ệ ủ ố ộ Document Library
3 L nh REVOKEệ
a. Thu h i quy n h th ng/role:ồ ề ệ ố
Trang 6 Đ thu h i quy n h th ng, user ph i để ồ ề ệ ố ả ược c p quy n đó v i WITH ADMINấ ề ớ OPTION ho c có quy n GRANT ANY PRIVILEGES.ặ ề
Đ thu h i role, user ph i để ồ ả ượ ấc c p role đó v i WITH ADMIN OPTION ho c cóớ ặ quy n GRANT ANY ROLE.ề
Không th dùng l nh REVOKE đ thu h i nh ng role/quy n để ệ ể ồ ữ ề ượ ấc c p thông qua
nh ng role khác.ữ
REVOKE DELETE ANY TABLE FROM salapati;
Revoke succeeded.
REVOKE myrole FROM lavender;
Revoke succeeded.
Dùng t khóa PUBLIC đ thu h i 1 quy n h th ng/role kh i t t c các user.ừ ể ồ ề ệ ố ỏ ấ ả Tuy nhiên không th dùng PUBLIC đ thu h i nh ng quy n để ể ồ ữ ề ược gán tr c ti pự ế
ho c thông qua 1 role khác.ặ
REVOKE CREATE SESSION FROM PUBLIC;
Các t khóa khác có ý nghĩa nh trong l nh GRANT.ừ ư ệ
b. Thu h i quy n đ i tồ ề ố ượng:
Trang 7 Đ thu h i 1 quy n đ i tể ồ ề ố ượng t 1 user/role, b n ph i là ngừ ạ ả ười đã c p quy n đóấ ề cho user/role đó ho c b n có quy n GRANTặ ạ ề ANY OBJECT PRIVILEGE. Tuy nhiên, đ i v i trố ớ ường h p b n có quy n GRANT ANY OBJECT ợ ạ ề PRIVILEGE,
b n ch có th thu h i nh ng quy n đ i tạ ỉ ể ồ ữ ề ố ượng được c p cho user/role, n uấ ế quy n đ i tề ố ượng đó đã đượ ấc c p cho user/role b i ch nhân c a chính đ i tở ủ ủ ố ượ ng
ho c b i nh ng user có quy n GRANT ANY OBJECT PRIVILEGE.ặ ở ữ ề
Không th dùng l nh REVOKE đ thu h i quy n/role đã để ệ ể ồ ề ượ ấc c p thông qua các role khác
REVOKE SELECT ON mytable FROM salapati;
Dùng t khóa ALL [PRIVILEGES] đ thu h i t t c nh ng quy n đ i từ ể ồ ấ ả ữ ề ố ượng mà
b n đã c p cho user/role đó.ạ ấ
REVOKE ALL ON salapati.xyz FROM paris;
Dùng t khóa PUBLIC đ thu h i 1 quy n đ i từ ể ồ ề ố ượng kh i nh ng user đã đỏ ữ ượ c
c p quy n đó thông qua vi c gán cho PUBLIC. Không th dùng PUBLIC đ thuấ ề ệ ể ể
h i nh ng quy n đồ ữ ề ược gán tr c ti p ho c thông qua 1 role khác.ự ế ặ
REVOKE INSERT ON salapati.xyz FROM paris;
L u ý: ư
N u user b thu h i quy n đ i tế ị ồ ề ố ượng mà quy n này đã đề ượ ấc c p cho user/role khác, h th ng cũng thu h i quy n đ i tệ ố ồ ề ố ượng đó c a nh ng user/role kia.ủ ữ
Trang 8 N u schema c a user b thu h i quy n đ i tế ủ ị ồ ề ố ượng có ch a các procedure,ứ function, package có s d ng l nh SQL liên quan đ n quy n b thu h i thìử ụ ệ ế ề ị ồ
nh ng procedure, function, package đó không còn có th th c thi đữ ể ự ược
4 Enable và disable m t ROLEộ
a. M t user có th có nhi u role. Tuy nhiên không ph i session nào cũng c n s ộ ể ề ả ầ ử
d ng t t c các role đó. Oracle cho phép b n thân user enable/disable các role mà ụ ấ ả ả mình đượ ấc c p đ qu n lý s c n thi t c a các role trong session hi n t i.ể ả ự ầ ế ủ ệ ạ
M c đ nh khi b t đ u 1 session m i, user s đặ ị ắ ầ ớ ẽ ược h th ng enable t t c các roleệ ố ấ ả
m c đ nh (default role) Sau đó user có th dùng l nh SET ROLE đặ ị ể ệ ể enable/disable các role theo ý mình theo cú pháp sau:
Ví d :ụ
SET ROLE myrole, lavender;
Câu l nh trên s enable 2 role đệ ẽ ược ch đ nh và disable t t c các role còn l i c aỉ ị ấ ả ạ ủ user
Đ enable t t c các role dùng l nh:ể ấ ả ệ
SET ROLE ALL;
Đ disable t t c các role dùng l nh:ể ấ ả ệ
SET ROLE NONE;
Đ enable t t c các role ngo i tr role lavender ta dùng l nh:ể ấ ả ạ ừ ệ
SET ROLE ALL EXCEPT lavender;
Trang 9b. Đ b o v m t role v i m c đích không cho phép các user tùy ý enable/disable ể ả ệ ộ ớ ụ
m t role, ngộ ườ ại t o user có th thi t l p password cho role đó ngay khi t o role:ể ế ậ ạ
CREATE ROLE newrole IDENTIFIED BY protected;
Ta cũng có th thay đ i vi c thi t l p password cho role:ể ổ ệ ế ậ
ALTER ROLE newrole IDENTIFIED BY changed;
ALTER ROLE newrole NOT IDENTIFIED;
c. Đ bi t hi n t i role nào đang để ế ệ ạ ược enable ta truy xu t view SESSION_ROLES:ấ
SELECT * FROM SESSION_ROLES;
d. Đ quy đ nh nh ng role nào là role m c đ nh ta dùng l nh ALTER USER:ể ị ữ ặ ị ệ
ALTER USER salapati DEFAULT ROLE myrole, lavender;
ALTER USER salapati DEFAULT ROLE ALL;
ALTER USER salapati DEFAULT ROLE ALL EXCEPT myrole;
ALTER USER salapati DEFAULT ROLE NONE;
5 Xóa ROLE
DROP ROLE myrole;
II T đi n d li u (Data Dictionary) ự ể ữ ệ
A. Lý thuy t ế
1 T ng quanổ
M i CSDL Oracle đ u có m t t đi n d li u. T đi n d li u đọ ề ộ ự ể ữ ệ ự ể ữ ệ ượ ạc t o ra khi CSDL đượ ạc t o
T đi n d li u trong Oracle là m t t p các b ng và view đự ể ữ ệ ộ ậ ả ượ ử ục s d ng như
m t tham kh o d ng ộ ả ạ ch đ c ỉ ọ (readonly) v b n thân CSDL đó.ề ả
T đi n d li u n m trên tablespace SYSTEM, thu c schema c a user SYS,ừ ể ữ ệ ằ ộ ủ bao g m 2 lo i:ồ ạ
Các b ng c b n (Base table):ả ơ ả
Trang 10Là các b ng l u tr thông tin c a t đi n d li u. D li u đả ư ữ ủ ự ể ữ ệ ữ ệ ượ ưc l u trong các
b ng này dả ướ ại d ng mã hóa
Các view dành cho người dùng truy xu t (Useraccessible View):ấ
T ng h p và hi n th thông tin đổ ợ ể ị ượ ưc l u trong các b ng c b n d ng ngả ơ ả ở ạ ườ i bình thường có th đ c hi u. Tùy vào quy n c a m i user mà user đó có thể ọ ể ề ủ ỗ ể truy xu t view nào và truy xu t nh ng d li u nào c a view đó.ấ ấ ữ ữ ệ ủ
M t t đi n d li u s l u tr t t c các thông tin v c u trúc lu n lý và c uộ ự ể ữ ệ ẽ ư ữ ấ ả ề ấ ậ ấ trúc v t lý c a CSDL:ậ ủ
Đ nh nghĩa c a t t c các đ i tị ủ ấ ả ố ượng schema trong CSDL
Các quy đ nh, gi i h n v s d ng tài nguyên c a các user,v.vị ớ ạ ề ử ụ ủ
Danh sách các user. Các quy n, role đề ượ ấc c p cho các user
Các ràng bu c toàn v n c a d li u ộ ẹ ủ ữ ệ
Thông tin audit
Các thông tin CSDL t ng quát khác.ổ
Oracle t đ ng c p nh t t đi n d li u đ ph n ánh chính xác tr ng thái th cự ộ ậ ậ ừ ể ữ ệ ể ả ạ ự
t c a CSDL.ế ủ
Trang 112 Các ti p đ u ng trong tên viewế ầ ữ
Trong nhi u trề ường h p, m t t p g m 3 view ch a nh ng thông tin tợ ộ ậ ồ ứ ữ ương tự
nh và tên c a chúng ch khác nhau các ti p đ u ng : user, all, dba.ư ủ ỉ ở ế ầ ữ
USER: hi n th nh ng gì thu c schema c a user đó.ể ị ữ ộ ủ
ALL: hi n th nh ng gì mà user đó có th truy xu t.ể ị ữ ể ấ
DBA: hi n th t t c thông tin thu c schema c a m i user (view dành choể ị ấ ả ộ ủ ọ
nh ng ngữ ười qu n tr ).ả ị
Các column trong các view thu c 1 b ba view h u nh là gi ng nhau, ngo i trộ ộ ầ ư ố ạ ừ
m t s ngo i l ộ ố ạ ệ
3 Các view thường s d ngử ụ
DBA_USERS: cung c p thông tin c a các user trong CSDL.ấ ủ
DBA_TS_QUOTAS: cung c p thông tin quota c a các user.ấ ủ
DBA_PROFILES: cung c p thông tin v các profile.ấ ề
DBA_SYS_PRIVS: hi n th nh ng user để ị ữ ượ ấc c p các quy n h th ng.ề ệ ố
DBA_ROLES: hi n th t t c các role có trong CSDL.ể ị ấ ả
DBA_COL_PRIVS: hi n th thông tin v vi c gán quy n h th ng m c c t.ể ị ề ệ ề ệ ố ứ ộ
DBA_ROLE_PRIVS: hi n th t t c các user và role c a h ể ị ấ ả ủ ọ
DBA_TAB_PRIVS: hi n th các user và quy n trên các b ng c a h ể ị ề ả ủ ọ
ROLE_ROLE_PRIVS: hi n th thông tin v các role để ị ề ượ ấc c p cho các role
ROLE_SYS_PRIVS: hi n th các quy n h th ng để ị ề ệ ố ượ ấc c p cho các role
ROLE_TAB_PRIVS: hi n th các quy n trên các b ng để ị ề ả ượ ấc c p cho các role
SESSION_PRIVS: hi n th các quy n hi n t i để ị ề ệ ạ ược enable cho user
SESSION_ROLES: hi n th các role hi n t i đang để ị ệ ạ ược enable cho user
B. Th c hành ự
Sinh viên dùng cu n Reference trên Oracle Documentation Library đ tra c uố ể ứ danh sách các view c a t đi n d li u.ủ ự ể ữ ệ
Truy xu t các view trên đ xem các d li u đấ ể ữ ệ ược hi n th ể ị
Trang 13III Bài t p ậ
1.T o các users John, Joe, Fred, Lynn, Amy, and Beth:ạ
a.Password l n lầ ượt là tên username vi t hoa.ế
b.Đ m b o các user này có th t o b t k b ng nào trong tablespace v i quotaả ả ể ạ ấ ỳ ả ớ 10M
2.Cho b ng Attendanceả
(
ID INT PRIMARY KEY, Name NVARCHAR2 )
Làm các bước sau:
a T o các role sau: DataEntry, Supervisor, và Management.ạ
b Gán John, Joe, và Lynn vào role DataEntry, gán Fred vào role Supervisor, và gán Amy và Beth vào role Management
c Cho role DataEntry các quy n SELECT, INSERT, và UPDATE trên b ngề ả Attendance
d Cho role Supervisor các quy n SELECT và DELETE trên b ng Attendance.ề ả
e Cho role Management quy n SELECT trên b ng Attendance.ề ả
f L n lầ ượt ki m tra k t qu phân quy n đã c p cho các roleể ế ả ề ấ
3.T o m t user m i tên NameManager v i password là pc123. Gán quy n update cho userạ ộ ớ ớ ề này trên c t Name c a b ng Attendance.ộ ủ ả
4.Th c hi n các yêu c u sau đ i v i các view đự ệ ầ ố ớ ược li t kê ph n II (T đi n d li u):ệ ở ầ ự ể ữ ệ
a.Tìm quy n mà trong tên c a quy n có ch CONTEXTề ủ ề ữ
b.Li t kê t t c user có quy n SELECT ANY TABLEệ ấ ả ề
5.Th c hi n các bự ệ ước sau:
a. Gán password cho role DataEntry bài 1 là “mgt”ở
Trang 14b. Cho phép user John quy n c p quy n cho các user khácề ấ ề
c. Gán t t c các quy n mà John có cho Beth. Beth có quy n INSERT và UPDATE trênấ ả ề ề
b ng Attendance không?ả