Bài thực hành Bảo mật hệ thống thông tin số 2: Cơ quản về quản lý người dùng có nội trình trình bày về việc quản lý user trong một hệ thống cơ sở dữ liệu như tạo mới user, thay đổi các đặc tính của user, xóa user,... 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 2 ự ố
Tóm t t n i dung: ắ ộ
Tablespace
Schema
User
Resource (tài nguyên)
Profile
I Qu n Lý User ả
A. Lý thuy t ế
1 Tablespace
M t CSDL Oracle độ ược chia thành nh ng đ n v l u tr lu n lý đữ ơ ị ư ữ ậ ược g i là cácọ
tablespace, nh m m c đích gom nhóm các c u trúc lu n lý có liên quan v i nhau.ằ ụ ấ ậ ớ
M i CSDL có 1 ho c nhi u các ỗ ặ ề tablespace. M i tablespace ch a 1 ho c nhi uỗ ứ ặ ề
các datafile Datafile là các c u trúc v t lý tấ ậ ương thích v i h đi u hành bênớ ệ ề
dưới, dùng đ l u tr d li u c a các c u trúc lu n lý trong ể ư ữ ữ ệ ủ ấ ậ tablespace ch a nó.ứ Kích thướ ổc t ng c ng c a các ộ ủ datafile chính là dung tích l u tr t ng c ng c aư ữ ổ ộ ủ
tablespace đó.
Trang 2M t CSDL có 2 tablespace SYSTEM và USERS ộ Tablespace SYSTEM ch a 2 datafile là DATA1.ORA và DATA2.ORA ứ
M t tablespace ch a 2 datafile ộ ứ Bên trong các datafile là các đ i t ố ượ ng, nh là table và index ư Các đ i t ố ượ ng trong tablespace có th n m trên vài datafile ể ằ
Có 2 lo i tablespace:ạ
System tablespace:
M i CSDL Oracle đ u có 2 ọ ề system tablespace là SYSTEM và SYSAUX,
đượ ạc t o ra m t cách t đ ng.ộ ự ộ
Trang 3 Ch a thông tin v các ứ ề data dictionary views, các đ nh nghĩa c a ị ủ stored
procedures, packages, và các database triggers dưới d ng PL/SQLạ
program units, SYSTEM rollback segment,…
Không nên ch a d li u ngứ ữ ệ ười dùng trong tablespace này m c dù có th ặ ể
Nonsystem tablespace:
Dùng đ ch a các lo i d li u còn l i, đ c bi t là các d li u c a ngể ứ ạ ữ ệ ạ ặ ệ ữ ệ ủ ườ i dùng
M t cách phân lo i khác c a tablespace:ộ ạ ủ
Temporary tablespace: đượ ử ục s d ng đ dành riêng cho các thao tác s p x pể ắ ế
d li u. ữ ệ
Permanent tablespace: Các tablespaces không ph i là ả temporary tablespaces
được g i là các ọ permanent tablespaces. Các permanent tablespace được sử
d ng đ l u tr d li u trong database.ụ ể ư ữ ữ ệ
2 Schema
Schema là m t t p h p các đ i tộ ậ ợ ố ượng c s d li u (vd: table, view, index,…).ơ ở ữ ệ
M i ỗ schema đượ ở ữc s h u b i m t user và có cùng tên v i user. ở ộ ớ
Không có m i quan h nào gi a ố ệ ữ schema và tablespace. Các đ i tố ượng thu c 1ộ
schema có th n m trên các ể ằ tablespace khác nhau và 1 tablespace có th ch a cácể ứ
đ i tố ượng thu c nhi u ộ ề schema khác nhau.
B. Th c hành ự
1 T o m i Userạ ớ
a. T o 1 user m i v i câu l nh sau:ạ ớ ớ ệ
CREATE USER salapati IDENTIFIED BY sammyy1;
User created.
Khi t o m i 1 user, ta có th quy đ nh v default tablespace, temporary tablespace,ạ ớ ể ị ề quota trên các tablespace, th i h n hi u l c c a password,… ngay trong câu l nhờ ạ ệ ự ủ ệ
t o user ho c s ch đ nh c th sau này.ạ ặ ẽ ỉ ị ụ ể
Trang 4b. Hi n th tablespace c a user v a m i t o:ể ị ủ ừ ớ ạ
SELECT default_tablespace, temporary_tablespace
FROM dba_users
WHERE username='SALAPATI';
DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
-
Tuy trong câu l nh t o user ta không ch đ nh default tablespace và temporaryệ ạ ỉ ị tablespace, Oracle đã t gán các giá tr m c đ nh cho user này.ự ị ặ ị
c.Log out ra kh i user hi n t i và log in b ng user v a m i t o, s nh n đỏ ệ ạ ằ ừ ớ ạ ẽ ậ ượ c thông báo:
ERROR:
Ora-01045: user SALAPATI lacks CREATE SESSION privilege; logon denied
Lý do: user v a m i t o ch a đừ ớ ạ ư ượ ấc c p quy n CREATE SESSION, là quy n choề ề phép 1 user k t n i đ n database. Đ user v a m i t o có th login đế ố ế ể ừ ớ ạ ể ược, ta ph iả
c p quy n ấ ề CREATE SESSION
Đăng nh p l i user ban đ u và c p quy n cho user salapati nh sau:ậ ạ ầ ấ ề ư
GRANT CREATE SESSION TO salapati;
Grant succeeded.
d. Khi user m i đớ ượ ạc t o ra, n u ta không c p các quy n t o cácế ấ ề ạ
lo i object (table, index,…) thì user đó không th t o đạ ể ạ ược các object. Tùy thu cộ vào nhu c u c a t ng user, ta ch nên c p nh ng quy n c n thi t ch không nênầ ủ ừ ỉ ấ ữ ề ầ ế ứ
c p d ấ ư
Trang 5M t đi u ki n b t bu c khác đ user có th t o độ ề ệ ắ ộ ể ể ạ ược các object là ta ph i c pả ấ quota cho user trên các tablespace tương ng. M t user có th đứ ộ ể ượ ấc c p quota sử
d ng trên 1 ho c nhi u tablespace. Quota có th limited ho c unlimited.ụ ặ ề ể ặ
Ví d sau cho th y khi user salapati t o m i 1 b ng s hi n th thông báo l i:ụ ấ ạ ớ ả ẽ ể ị ỗ
CONNECT salapati/sammyy1
Connected.
CREATE TABLE xyz (name VARCHAR2(30));
create table xyz (name varchar2(30))
*
ERROR at line 1:
ORA-01950: no privileges on tablespace 'USERS'
Đ kh c ph c l i trên, log in l i vào user sinh viên c a mình và th c hi n các câuể ắ ụ ỗ ạ ủ ự ệ
l nh sau:ệ
ALTER USER salapati
QUOTA 100M ON users;
User altered.
GRANT CREATE TABLE TO salapati;
Grant succeeded.
N u mu n user có th s d ng t i đa 1 tablespace nào đó thì dùng cú pháp sau:ế ố ể ử ụ ố
ALTER USER salapati
QUOTA UNLIMITED ON users;
e. Vì m t user có th độ ể ược c p quota trên nhi u tablespace khácấ ề nhau, nên khi t o các đ i tạ ố ượng, user có th ch đ nh c th tablespace mà mìnhể ỉ ị ụ ể
mu n t o đ i tố ạ ố ượng trên đó. N u không ch đ nh thì h th ng s t đ ng t o trênế ỉ ị ệ ố ẽ ự ộ ạ default tablespace c a user đó.ủ
CREATE TABLE abc (name varchar2(30)) TABLESPACE users;
f.N u mu n user có th t o object trên b t k tablespace nào thì dùng cú phápế ố ể ạ ấ ỳ sau:
GRANT UNLIMITED TABLESPACE TO salapati;
Grant succeeded.
Trang 6g. Có th xem thông tin v quota để ề ược c p cho các user thông quaấ view DBA_TS_QUOTAS
SELECT tablespace_name, username, bytes
h. Có th gán tablespace lúc t o m i user nh sau: ể ạ ớ ư
CREATE USER salapati_new IDENTIFIED BY sammyy1
TEMPORARY TABLESPACE TEMPTBS01
DEFAULT TABLESPACE USERS
QUOTA 500M ON USERS;
User created.
2 Thay đ i các đ c tính c a userổ ặ ủ
a. Thay đ i password:ổ
ALTER USER salapati IDENTIFIED BY susana;
Ho c:ặ
ALTER USER salapati IDENTIFIED BY susana REPLACE sammyy1;
Trang 7b. Password expiration:
Ta có th làm cho 1 password h t h n b ng 2 cách:ể ế ạ ằ
ALTER USER salapati IDENTIFIED BY susana PASSWORD EXPIRE; User altered.
Ho cặ
ALTER USER salapati PASSWORD EXPIRE;
User altered.
Ta cũng có th b t bu c password expire ngay khi t o m i m t user:ể ắ ộ ạ ớ ộ
CREATE USER paris IDENTIFIED BY p124 PASSWORD EXPIRE;
Sau khi làm expire password các user trên, hãy log in vào các user đó (salapati, paris) và t rút ra nh n xét.ự ậ
c. Tr ng thái account:ạ
Ta có th thay đ i tr ng thái tài kho n (lock/unlock) c a m t user đ choể ổ ạ ả ủ ộ ể phép/không cho phép user đó truy xu t vào CSDL.ấ
ALTER USER salapati ACCOUNT LOCK;
ALTER USER paris ACCOUNT UNLOCK;
Xem tr ng thái tài kho n (Account Status) c a t t c các user:ạ ả ủ ấ ả
SELECT username, account_status
FROM dba_users;
3 Xóa User
DROP USER salapati;
User Dropped.
L u ý ư : l nh drop user không ch xóa user mà còn xóa t t c object thu c v user đó.ệ ỉ ấ ả ộ ề Khi user đã có object thì ph i dùng thêm tùy ch n CASCADE:ả ọ
DROP USER salapati CASCADE;
Trang 8User Dropped.
II User Profile
A. Lý thuy t ế
1. Profile
M t profile là m t t p h p có tên c a các gi i h n tài nguyên, độ ộ ậ ợ ủ ớ ạ ược gán cho m tộ hay nhi u user trong CSDL Oracle.ề
Profile cung c p m t cách qu n lý d dàng vi c gi i h n tài nguyên. Nó giúp gi iấ ộ ả ễ ệ ớ ạ ớ
h n vi c s d ng quá m c các tài nguyên c a toàn h th ng. Profile cũng là cáchạ ệ ử ụ ứ ủ ệ ố
đ qu n lý các chính sách v password.ể ả ề
Trong m t CSDL có th t o nhi u profile. M t profile m c đ nh s độ ể ạ ề ộ ặ ị ẽ ược dùng
đ gán cho nh ng user không để ữ ược gán profile m t cách tộ ường minh
L u ý r ng các giá tr m c đ nh đ u đư ằ ị ặ ị ề ược thi t l p là “unlimited”.ế ậ
2. Các lo i tài nguyênạ
M t profile có th mô t các lo i gi i h n tài nguyên sau:ộ ể ả ạ ớ ạ
S lố ượng các session đ ng th i mà user có th th c hi n.ồ ờ ể ự ệ
Th i gian x lý CPU cho m t session c a user đó ho c cho m t cu c g iờ ử ộ ủ ặ ộ ộ ọ (call) t i Oracle b i 1 câu l nh SQL.ớ ở ệ
S l n đ c lu n lý I/O cho m t session c a user đó ho c cho m t cu c g iố ầ ọ ậ ộ ủ ặ ộ ộ ọ (call) t i Oracle b i 1 câu l nh SQL.ớ ở ệ
Lượng th i gian nhàn r i cho session c a user.ờ ỗ ủ
Lượng th i gian connect cho m t session.ờ ộ
Các quy đ nh v password (s l n c g ng login th t b i, th i gian hi u l cị ề ố ầ ố ắ ấ ạ ờ ệ ự
c a 1 password,…)ủ
B. Th c hành ự
1 T o m i Profileạ ớ
a Trước h t, đ h th ng có th thi hành vi c ràng bu c các gi i h n tài nguyên, taế ể ệ ố ể ệ ộ ớ ạ
c n enable tham s h th ng RESOURCE_LIMIT b ng câu l nh sau:ầ ố ệ ố ằ ệ
Trang 9ALTER SYSTEM SET RESOURCE_LIMIT = TRUE;
Tham s RESOURCE_LIMIT có giá tr m c đ nh ban đ u là FALSEố ị ặ ị ầ .
b T o m i 1 profile b ng câu l nh sau:ạ ớ ằ ệ
CREATE PROFILE app_user LIMIT
LOGICAL_READS_PER_SESSION DEFAULT
L u ý, đ t o PROFILE, c n có quy n CREATE PROFILE.ư ể ạ ầ ề
2 Gán profile
a Có th gán profile khi v a t o user:ể ừ ạ
CREATE USER salapati IDENTIFIED BY sammyy1
TEMPORARY TABLESPACE TEMPTBS01
DEFAULT TABLESPACE USERS
GRANT QUOTA 500M ON USERS
PROFILE app_user;
User created.
b Khi t o m i user, n u không gán tạ ớ ế ường minh thì user s đẽ ược gán profile m cặ
đ nh nh sau:ị ư
CREATE USER venice IDENTIFIED BY sammyy1;
User created.
SELECT profile FROM dba_users
WHERE username = 'VENICE';
PROFILE
Trang 10
-DEFAULT
Trang 11Đ xem thông tin v profile m c đ nh:ể ề ặ ị
SELECT DISTINCT resource_name, limit FROM dba_profiles
WHERE profile='DEFAULT';
c Gán profile cho 1 user:
ALTER USER salapati PROFILE test;
3 Thay đ i profileổ
ALTER PROFILE test LIMIT SESSIONS_PER_USER 4 FAILED_LOGIN_ATTEMPTS 4;
4 Xóa profile
DROP PROFILE test CASCADE;
III Bài T p ậ
1. T o m t profile “Password” th a mãn:ạ ộ ỏ
a) Th i h n s d ng là 60 ngày.ờ ạ ử ụ
b) Gia h n 10 ngày.ạ
c) S ngày mà sau đó password m i đố ớ ượ ử ục s d ng l i là 1 ngày.ạ
d) S l n thay đ i password trố ầ ổ ước khi đượ ử ạc s l i password cũ là 5 l n.ầ
e) S l n nh p sai password là 3.ố ầ ậ
2. Ki m tra profile v a t o:ể ừ ạ
a) T o m i user John v i password p123.ạ ớ ớ
b) Gán profile “Password” v a t o cho user này.ừ ạ
c) Th c hi n nh ng câu l nh c n thi t đ ki m tra tác d ng c a yêu c u 1d. Choự ệ ữ ệ ầ ế ể ể ụ ủ ầ
bi t k t qu ế ế ả
Trang 12d) Hi n tệ ượng gì x y ra khi nh p password sai 4 l n? Làm sao đ kh c ph c h uả ậ ầ ể ắ ụ ậ
qu v a x y ra?ả ừ ả