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