
Bài th c hành s 3ự ố
QUY N và ROLEỀ
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):ề ệ ố
oLà 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),…ủ ấ ỳ ả
oUser 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.
Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM

Quy n đi t ng (Schema Object Privilege ho c Objectề ố ượ ặ
Privilege):
oLà 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.ế ề ữ ệ ỏ ả
oCó nhi u quy n đi t ng khác nhau dành cho các lo i đi t ng schemaề ề ố ượ ạ ố ượ
khác nhau.
oDùng đ qu n lý vi c truy xu t đn các đi t ng schema c th nào đó.ể ả ệ ấ ế ố ượ ụ ể
oUser 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.ề
Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM

B. 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ì?ể ệ ể ự ệ ượ ầ ả ề
Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM

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

GRANT 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:ồ ề ệ ố
Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM

