Bài th c hành s 2ự ố C B N V QU N LÝ NG I DÙNGƠ Ả Ề Ả ƯỜ 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 Orac[.]
Trang 1Bài th c hành s 2 ự ố
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 3procedures, 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ờ ạ ệ ự ủ ệ
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 - -USERS TEMPTBS_01
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 5quota 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:
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 7Ta 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:ả ọ