Cấp quyềnCấp quyền authorization: Là sự gán quyền cho một người dùng hay chương trình để có thể truy cập vào một Một số HQTCSDL sử dụng các định danh người dùng riêng, một số sử dụng các
Trang 1H Ệ QU Ả N TR Ị C C Ơ Ơ S S Ở D Ữ LI Ệ U
ThS TR Ầ N NGÂN BÌNH ThS ĐẶ NG QU Ố C VI Ệ T
TS NGUY Ễ N THÁI NGHE
2012
TR ƯỜ NG ĐẠ I H Ọ C C Ầ N TH Ơ
KHOA CÔNG NGH Ệ THÔNG TIN & TT
Trang 2Ch ươ ng
Ch ươ ng 1 AN TOÀN D Ữ LI Ệ U
Trang 4An toàn trong CSDL
An toàn trong CSDL là sự bảo vệ CSDL khỏi những
đe dọa có chủ ý hay vô tình thông qua các biện pháp
có sử dụng máy tính hoặc không có sử dụng máy tính
Việc xem xét an toàn không chỉ áp dụng cho dữ liệu
Trang 5trở đ/v người dùng).
Trang 7Cấp quyền
Cấp quyền (authorization): Là sự gán quyền cho một
người dùng hay chương trình để có thể truy cập vào một
Một số HQTCSDL sử dụng các định danh người dùng riêng, một số sử dụng các định danh người dùng của hệ
điều hành bên dưới
Trang 8Ch ủ s ở h ữ u có m ọ i quy ề n h ạ n (privileges) trên đố i t ượ ng c ủ a mình
và có th ể gán quy ề n trên đố i t ượ ng đ ó cho ng ườ i khác.
HQTCSDL ghi nh ậ n t ấ t c ả các quy ề n đ ã gán cho ng ườ i dùng nào
và gán b ở i ai; để có th ể duy trì đ úng đắ n t ậ p quy ề n trên ng ườ i
dùng khi quy ề n đượ c g ỡ b ỏ
Các HQTCSDL có th ể h ỗ tr ợ nhi ề u m ứ c c ấ p quy ề n khác nhau
(m ứ c ng ườ i dùng ho ặ c nhóm ng ườ i dùng).
Đị nh danh ng ườ i dùng th ườ ng có độ ư u tiên cao h ơ n đị nh danh nhóm.
Trang 9Ma Tr ậ n n Đ Đ i i ề u Khi ể n Truy C ậ p
Để cài đặ t vi ệ c đ i ề u khi ể n truy c ậ p, các HQTCSDL s ử d ụ ng các ma
tr ậ n đ i ề u khi ể n truy c ậ p.
M ỗ i lo ạ i quy ề n s ẽ đượ c g ắ n v ớ i m ộ t giá tr ị nh ị phân:
READ UPDATE INSERT DELETE ALL
0001 0010 0100 1000 1111
Quy ề n c ủ a đị nh danh trên 1 đố i t ượ ng s ẽ là t ổ ng các giá tr ị nh ị
phân c ủ a các quy ề n mà đị nh danh đ ó có.
Quy ề n c ủ a t ấ t c ả các đị nh danh trên m ộ t đố i t ượ ng c ủ a CSDL s ẽ đượ c th ể hi ệ n trên ma tr ậ n đ i ề u khi ể n truy c ậ p (access control
Trang 10SQL: L ệ nh GRANT nh GRANT đ đ ể c ấ p quy ề n
Các quyền định nghĩa bởi chuẩn ISO: SELECT,
INSERT, UPDATE, DELETE, REFERENCES, USAGEGán quyền trên đối tượng cho người dùng bằng lệnh:
GRANT {danh_sách_quyền | ALL PRIVILEGES}
ON tên_đối tượng
TO {danh_sách_định_danh_được_cấp | PUBLIC}
[WITH GRANT OPTION]
Tùy chọn WITH GRANT OPTION cho phép người dùng
được cấp tiếp tục cấp quyền cho người khác
Trang 11SQL: L ệ nh REVOKE nh REVOKE đ đ ể thu h ồ i quy ề n
Lệnh REVOKE được dùng để gỡ bỏ quyền trên đối
tượng khỏi người dùng đã được cấp:
REVOKE [GRANT OPTION FOR] {ds_quyền | ALL
PRIVILEGES} ON đối_tượng
FROM {danh_sách_định_danh_được_cấp | PUBLIC} [RESTRICT | CASCADE]
RESTRICT: m ặ c đị nh, s ẽ ng ư ng th ự c thi l ệ nh Revoke n ế u k ế t
qu ả câu l ệ nh làm ả nh h ưở ng đế n các đố i t ượ ng ph ụ thu ộ c.
CASCADE: Các đố i t ượ ng ph ụ thu ộ c s ẽ b ị xóa ho ặ c g ỡ ra.
Trang 12Bằng cách này ta sẽ đảm bảo tính an toàn cho dữ liệu
tốt hơn là gán quyền trên nhiều bảng cơ sở
Trang 13SQL: L ệ nh Create View
L ệ nh dùng để t ạ o view:
CREATE VIEW tên_view [(tên_cột [, ])]
AS câu_truy_vấn
[WITH [CASCADED | LOCAL] CHECK OPTION]
Các dòng đ i vào và ra kh ỏ i view đượ c g ọi là các dòng di c ư
(migrating rows).
WITH CHECK OPTION để đả m b ả o r ằ ng các dòng không di c ư ra
kh ỏ i view qua các thao tác insert và update trên view (ngh ĩ a là, n ế u
m ộ t dòng không th ỏ a đ i ề u ki ệ n WHERE trong câu truy v ấ n c ủ a
view thì dòng đ ó s ẽ không đượ c c ậ p nh ậ t vào b ả ng c ơ s ở ).
N ế u có CASCADE thì vi ệ c đả m b ả o này c ũ ng áp d ụ ng trên các
view đị nh ngh ĩ a trên view này ( đ ây là ch ế độ m ặ c đị nh).
N ế u có LOCAL thì vi ệ c đả m b ả o này c ũ ng áp d ụ ng trên các view
đị nh ngh ĩ a trên view này tr ừ khi dòng đ ó c ũ ng di c ư kh ỏ i view hay table n ề n c ủ a view này.
Trang 14Ví d ụ WITH CHECK OPTION
CREATE VIEW manager3_staff AS SELECT * FROM
high_salary WHERE bno = ‘B3’
CREATE VIEW high_salary AS SELECT * FROM low_salary
WHERE salary > 10000 WITH LOCAL CHECK OPTION
CREATE VIEW low_salary AS SELECT * FROM staff
WHERE salary > 9000
UPDATE manager3_staff SET salary = 9500
Trang 15SQL: L ệ nh DROP VIEW
Lệnh dùng để xóa view
DROP VIEW tên_view [RESTRICT | CASCADE]
N ế u có các đố i t ượ ng khác tham chi ế u view này thì tr ườ ng h ợ p có:
RESTRICT: l ệ nh này s ẽ không đượ c th ự c hi ệ n
CASCADE: l ệ nh này s ẽ xóa luôn c ả các đố i t ượ ng kia.
Một số giới hạn trên view
View có thể cập nhật (updatable view)
Trang 16Thu ậ n l ợ i và b ấ t l ợ i c ủ a view
Thuận lợi
Độ c l ậ p d ữ li ệ u
Currency (TT trong view luôn là TT hi ệ n t ạ i)
Nâng cao tính an toàn
Trang 17Sao L ư u v
Sao L ư u v à Ph ụ c H ồ i
Sao l ư u (backup) là quá trình sao chép CSDL và các t ậ p tin nh ậ t ký (có th ể k ể c ả ch ươ ng trình) vào các thi ế t b ị l ư u tr ữ d ự phòng m ộ t cách đị nh k ỳ
Ghi nh ậ t ký (journaling) là quá trình ghi nh ậ n và duy trì m ộ t t ậ p tin
nh ậ t ký (log file hay journal) v ề t ấ t c ả các thay đổ i đ ã th ự c hi ệ n trên CSDL để có th ể ph ụ c h ồ i m ộ t cách hi ệ u qu ả khi có s ự c ố
Đ i ể m ki ể m tra (checkpoint): Là đ i ể m di ễ n ra s ự đồ ng b ộ gi ữ a CSDL
và t ậ p tin nh ậ t ký giao d ị ch T ạ i th ờ i đ i ể m này, t ấ t c ả các vùng đệ m
s ẽ đượ c ghi ra b ộ l ư u tr ữ th ứ c ấ p và m ộ t m ẫ u tin ki ể m tra s ẽ đượ c ghi vào trong nh ậ t ký.
Các k ỹ thu ậ t này s ẽ đượ c th ả o lu ậ n chi ti ế t h ơ n trong bài qu ả n lý giao d ị ch.
Trang 19M ậ t hóa
M ậ t hóa (encryption) là s ự mã hóa d ữ li ệ u b ằ ng m ộ t gi ả i thu ậ t đặ c
bi ệ t làm cho d ữ li ệ u không th ể đọ c đượ c n ế u không có khóa gi ả i
B ấ t đố i x ứ ng (asymmetric): s ử d ụ ng các khóa khác nhau để mã và gi ả i
mã (các h ệ th ố ng m ậ t hóa khóa công c ộ ng – public key cryptosystems, RSA).
Trang 20Công Ngh ệ RAID
RAID (Redundancy Array of Independent Disks): một dãy các đĩa độc lập để cải tiến độ tin cậy và tăng hiệu
suất hoạt động cho hệ thống
Tăng hi ệ u su ấ t bằng cách ‘tháo rời’ dữ liệu (data
stripping): chia dữ liệu thành các phần bằng nhau và
được phân phối cho nhiều đĩa một cách trong suốt
Tăng độ tin c ậ y bằng cách lưu thông tin lặp lại trên
nhiều đĩa sử dụng cơ chế chẵn lẻ (parity) hay cơ chế
sửa lỗi (error-correcting)
Việc chọn lựa mức RAID để cài đặt phụ thuộc vào bản
chất dữ liệu, chi phí, mức độ quan trọng, v.v.…
Trang 21RAID 0 & RAID 1
RAID 0 – Không d ư th ừ a Vi ệ c chia d ữ li ệ u đượ c th ự c hi ệ n ở m ứ c
kh ố i => T ă ng t ố c độ truy xu ấ t cao nh ấ t
RAID 1: duy trì hai phiên b ả n d ữ li ệ u gi ố ng h ệ t nhau trên các đĩ a khác nhau => tin c ậ y nh ư ng đắ t ti ề n
RAID 0 + 1
Trang 22RAID 2 & RAID 3
RAID 2 – chia DL theo bit và mã Hamming đượ c s ử d ụ ng nh ư là
c ơ ch ế d ư th ừ a để có th ể s ử a l ỗ i
RAID 3 – Chia DL theo byte và có 1 đĩ a ch ẵ n l ẻ Đ òi h ỏ i các đĩ a
ph ả i quay đồ ng b ộ , không đ áp ứ ng nhi ề u yêu c ầ u cùng lúc
Hai c ấ u hình này tr ở
nên l ỗ i th ờ i và không
còn s ử d ụ ng n ữ a
Trang 23RAID 4 & RAID 5
RAID 4: chia DL theo kh ố i và có m ộ t đĩ a ch ẵ n l ẻ
RAID 5: chia DL theo kh ố i TT ch ẵ n l ẻ l ư u luân phiên trên các đĩ a
d ữ li ệ u.
RAID 4 không
ph ổ bi ế n
Trang 24Các qui đị nh, b ướ c th ự c hi ệ n sao l ư u ph ả i đượ c mô t ả rõ ràng.
Thông tin v ề phiên b ả n sao l ư u ph ả i chính xác.
B ả n sao l ư u ph ả i đượ c l ư u tr ữ nhi ề u n ơ i.
N ơ i l ư u tr ữ các b ả n sao l ư u ph ả i đượ c đả m b ả o an toàn.
Ph ụ c h ồ i:
Quá trình này c ũ ng c ầ n ph ả i đượ c mô t ả rõ ràng
Ph ả i t ổ ch ứ c ki ể m th ử th ườ ng xuyên để đả m b ả o h ệ th ố ng có th ể ph ụ c
h ồ i n ế u có s ự c ố
Trang 25Tránh nh ữ ng s ử a đổ i không đượ c phép trên ch ươ ng trình.
C ấ p và qu ả n lý s ự truy c ậ p trên d ữ li ệ u.
B ả o đả m các t ư li ệ u là m ớ i nh ấ t.
Các t ậ p tin nh ậ t ký s ẽ đượ c xem xét k ỹ trong công tác ki ể m đị nh
để phát hi ệ n m ọ i ho ạ t độ ng b ấ t th ườ ng n ế u có.
Trang 26Cài đặt và nâng cấp phần mềm hệ thống.
Ph ả i đ ánh giá m ọ i ả nh h ưở ng đế n d ữ li ệ u và ph ầ n m ề m hi ệ n t ạ i
tr ướ c khi nâng c ấ p.
Ph ả i lên k ế ho ạ ch hành độ ng rõ ràng
Thông th ườ ng, vi ệ c nâng c ấ p ph ả i di ễ n ra vào cu ố i tu ầ n.
Nh ữ ng thay đổ i trong phiên b ả n m ớ i có th ể ả nh h ưở ng đế n các
ch ươ ng trình đ ã đượ c vi ế t b ở i nh ữ ng l ậ p trình viên ứ ng d ụ ng.
Trang 27Các biện pháp bảo vệ không sử dụng máy tính
Trang 29tránh sự phá hoại hay sửa đổi các dữ liệu hợp pháp.
Trang 31Ki ế n trúc ứ ng d ụ ng c ng c ơ ơ s s ở d ữ li ệ u
Mô hình Client / server Mô hình Multi-tier
Trang 32Th ể hi ệ n CSDL (DB Instance)
Là sự kết hợp giữa SGA và các tiến trình nền
Trang 33C ấ u trúc CSDL Oracle
Cấu trúc vật lý
Data Files
Control Files
Redo Log Files
Archived Redo Log
Segments Tablespaces
Trang 34Data blocks, Extents & Segments
Trang 35Tablespace thuchanh Database
Trang 36Quan h ệ gi ữ a CT lu ậ n lý & v ậ t lý
Trang 37Ba ph ươ ng ph
Add new datafile Create new tablespace
Extent Datafile
Trang 38Schema và schema objects
Schema là m ộ t t ậ p h ợ p các đố i t ượ ng CSDL (database
object hoặc schema object) thu ộ c v ề m ộ t ng ườ i dùng.
Schema objects: table, index, view, synonyms, stored procedure…
Trang 39Data Dictionary
Là t ậ p h ợ p các b ả ng và khung nhìn (view).
L ư u tr ữ các thông tin v ề c ấ u trúc lu ậ n lý và v ậ t lý
c ủ a CSDL (ng ườ i dùng, quy ề n, c ấ u trúc b ả ng…) còn g ọ i là meta-data:
Thông tin ng ườ i dùng (quy ề n, vai trò…)
Trang 40Oracle net
Là một middleware được cài đặt trên Oracle Client và
Oracle Database Server
Cho phép thiết lập phiên kết nối mạng từ một ứng dụng trình khách đến máy chủ CSDL
Phương thức kết nối thông dụng: TCP/IP, port 1521
Trang 41alter database
open
Trang 43Ng ư
Ng ư ờ i dùng m ặ c c đ đ ị nh
Sys / change_on_install và System / manager
Cả hai đều có quyền DBA
Sys là ch ủ sở hữu của CSDL và sở hữu các
bảng tự điển dữ liệu (TĐDL), có quyền
SYSDBA, vì thế có thể mở, tắt CSDL,
System ch ỉ là người quản trị có quyền, không
sở hữu TĐDL mà chỉ sở hữu các bảng tạo ra bởi Oracle nhưng không thuộc TĐDL.
Trang 44T ạ o ng o ng ư ư ờ i dùng m ớ i
CREATE USER username
IDENTIFIED {BY password | EXTERNALLY}
[ DEFAULT TABLESPACE tablespace ]
[ TEMPORARY TABLESPACE tablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON
Trang 45S ử a thông tin ng a thông tin ng ư ư ờ i dùng
ALTER USER username [ IDENTIFIED {BY password |
EXTERNALLY }]
ALTER USER username
[ DEFAULT TABLESPACE tablespace]
[ TEMPORARY TABLESPACE tablespace]
{[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ] […] }; ALTER USER username ACCOUNT {LOCK|UNLOCK};
ALTER USER username PASSWORD EXPIRE;
DROP USER username
Xem thông tin ng ườ i dùng trong các view: DBA_USERS và
DBA_TS_QUOTAS
Trang 46Qu ả n lý quy ề n
Có hai lo ạ i quy ề n:
Quyền đối tượng:
Là các quyền thao tác (như select, insert,
update,…) trên một đối tượng của CSDL như
table, view, procedure,…
Quyền hệ thống:
Là các quyền thao tác trên CSDL nhưng không
gắn với bất cứ đối tượng nào như create table,
create procedure,…
Trang 47CREATE SESSION ALTER SESSION RESTRICTED SESSION
TABLESPACE
CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE
Trang 48M ộ t s ố l l ư ư u ý v u ý v ề quy ề n h ệ th ố ng
CREATE SESSION là quyền tối thiểu nhất của một user
để có thể kết nối vào CSDL
Các quyền như CREATE TABLE, CREATE
PROCEDURE, CREATE TRIGGER bao gồm cả các
quyền xoá các đối tượng đó
CREATE TABLE bao gồm các quyền CREATE INDEX
và ANALYZE Với quyền này, người dùng cần có đủ
quota trên tablespace hay phải được gán UNLIMITED TABLESPACE
Các quyền có kèm ANY nghĩa là có thể thực hiện quyền này trên bất cứ schema nào VD: quyền CREATE ANY TABLE
Trang 50L ư u ý v
Người dùng được gán quyền a với tuỳ chọn WITH
ADMIN OPTION thì có thể tiếp tục gán quyền a đó cho
một người dùng khác, thậm chí với tùy chọn WITH
ADMIN OPTION
Người dùng nào có quyền hệ thống với ADMIN
OPTION đều có thể thu hồi quyền này từ bất kỳ người dùng nào
Tất cả các người dùng có quyền GRANT ANY ROLE
cũng có thể gán hay thu hồi bất kỳ quyền nào
Muốn gỡ bỏ ADMIN OPTION của 1 người dùng thì phải
gỡ bỏ quyền đó trước, sau đó gán lại mà không có
ADMIN OPTION
Trang 53[WITH GRANT OPTION] ;
REVOKE { object_priv [, object_priv ] | ALL
[PRIVILEGES] }
ON [schema.]object
FROM {user|role|PUBLIC} [, {user|role|PUBLIC} ]
[CASCADE CONSTRAINTS] ;
Trang 54L ư u ý khi g
L ư u ý khi g án quy ề n n đ đ ố i t i t ư ư ợ ng
Để gán các quyền trên đối tượng, đối tượng đó phải
thuộc về schema của người dùng thực hiện gán hoặc
người dùng đó có quyền WITH GRANT OPTION
Mặc định nếu một đối tượng thuộc về một người dùng nào đó thì người dùng đó có đầy đủ các quyền trên đối
tượng đó
Tuỳ chọn WITH GRANT OPTION không dùng cho việc gán các quyền đối tượng cho các Role
Trang 55L ư u ý khi thu h
L ư u ý khi thu h ồ i quy ề n n đ đ ố i t i t ư ư ợ ng
Để thu hồi quyền đối tượng thì người thu hồi phải là
người đã gán quyền đó
Vì vậy, khi ra lệnh thu hồi tất cả (ALL) nghĩa là chỉ thu
hồi tất cả các quyền mà người thu đã gán thôi
Muốn gỡ bỏ GRANT OPTION của 1 người dùng thì
phải gỡ bỏ quyền đó trước, sau đó gán lại mà không cóGRANT OPTION
Trang 56Đượ c gán và thu h ồ i t ừ ng ườ i dùng.
Có th ể gán role cho b ấ t c ứ ng ườ i dùng nào ngo ạ i tr ừ cho chính nó.
Có th ể bao g ồ m c ả quy ề n h ệ th ố ng (system privileges) và quy ề n đố i
t ượ ng (object privileges).
Có th ể enable và disable các Role đượ c gán cho các ng ườ i dùng.
Có th ể yêu c ầ u password khi c ầ n enable các Role.
Tên các Role không trùng v ớ i tên ng ườ i dùng và tên các Role đ ang
t ồ n t ạ i.
Không thu ộ c v ề b ấ t c ứ ng ườ i dùng nào và không thu ộ c v ề b ấ t c ứ
schema nào.
Trang 57T ạ o, s ử a và xóa role
CREATE ROLE role_name [NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY }]
ALTER ROLE role_name {NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY }} ;
DROP ROLE role_name;
Trang 58Gán và thu h ồ i role t ừ user
GRANT role_name [, role_name ]
TO {user|role|PUBLIC} [, {user|role|PUBLIC} ]
[WITH ADMIN OPTION] ;
REVOKE role_name [, role_name ]
FROM {user|role|PUBLIC}[, {user|role|PUBLIC} ] ;
Trang 59Import / Export
Export : xuất nội dung luận lý của một CSDL vào một
tập tin nhị phân => tập tin dump
Import: dùng tập tin dump này để tạo lại các đối tượng CSDL trên một schema hoặc trên toàn bộ CSDL
Sử dụng lệnh exp, imp trong cửa sổ command của
Windows (hoặc Terminal của Linux)
Trang 60Yêu c ầ u v ề quy ề n
Export schema của người dùng
khác
SYSDBA, EXP_FULL_DATABASE vàDBA
Export toàn bộ CSDL hoặc
tablespace
EXP_FULL_DATABASE
Trang 61Ví d ụ
Export toàn b ộ CSDL (full=y) không có d ữ li ệ u (rows=n): exp
userid=sys/hqtcsdl@xe file=D:\export_full.dmp
Export toàn b ộ schema c ủ a ng ườ i dùng SCOTT: exp
owner=scott
Export b ả ng DEPT trong schema SCOTT: exp
Import t ấ t c ả schema: imp userid=system/hqtcsdl@xe
Import các đố i t ượ ng c ủ a SCOTT vào schema TEST: imp
userid=system/hqtcsdl@xe file=D:\scott.dmp
Import b ả ng DEPT c ủ a SCOTT vào schema TEST: imp
userid=system/hqtcsdl@xe file=D:\scott_dept.dmp
Trang 62Tham số Ý nghĩĩĩĩa Giá trị mặc
Trang 63Tham số Ý nghĩĩĩĩa
Giá trị mặc định
được lưu trữ trong tablespace
Trang 64Oracle Data Pump
Data Pump thừa hưởng tất cả tính năng của phương pháp import/export truyền thống; nhưng có tốc độ thực
hiện nhanh hơn imp/exp ít nhất 2 lần
Tập tin xuất ra từ lệnh expdp sẽ lưu trên server, tập tin
dữ liệu mà impdp thao tác cũng phải lưu trên server;
trong th ư m ụ c đố i t ượ ng
Người dùng nào được gán quyền đọc ghi trên thư mục
đối tượng này thì mới có thể sử dụng nó