An nin mang
Trang 1Lời nói đầu
Khi nói đến nghề quản trị trong lĩnh vực Công nghệ thông tin tại Việt Nam,
chúng ta thường liên tưởng đến nghề quản trị Mạng, chỉ khoảng gần năm năm
trở lại đây thì tại Việt Nam mới hình thành lên một nghề mới, đó là nghề quản
trị hệ thống Cơ sở dữ liệu (CSDL), thường gọi là DBA (Database
Administrator) Hiện có ba hệ quản trị CSDL được biết đến trên thế giới và tại
Việt Nam, đó là: Oracle, Microsoft SQL-Server và IBM-DB2 Nhưng với số liệu
thống kê năm 2010, Oracle chiếm đến 76,8% thị phần CSDL trên toàn thế giới
và theo báo cáo tài chính quí 3 của hãng thì Oracle tăng 35% doanh thu so với
cùng kỳ năm trước, từ các thông tin này chúng ta có thể đánh giá bước đầu
Oracle là Cơ sở dữ liệu được các doanh nghiệp ứng dụng nhiều nhất trên thế
giới
Đặc điểm sử dụng các Cơ sở dữ liệu tại Việt Nam:
Oracle thường được các doanh nghiệp đang phát triển và doanh nghiệp lớn sử
dụng, do đó nhỮng ai làm việc với công nghệ Oracle thường có mức thu nhập
tot
¢ Microsoft SQL-Server thi duGc cdc doanh nghiệp vừa và nhỏ (Small and
Medium Bussiness - SMB) thích dùng, vì tính đơn giản và dễ sử dụng của
CSDL này Mức thu nhập khi làm việc với SQL-Server vì thế cũng có
phần không cao như Oracle
¢ IBM DB2 thì hơi đặc biệt, chỉ một số ít doanh nghiệp lớn tại Việt Nam
sử dụng, người quản trị hệ thống này thường được ưu đãi tốt nhưng số
lượng không nhiều
An ninh trong hệ quản trị CSDL Oracle Page 1
Sưu tầm bởi: wWWw.Kenhdalhoc.com -Diễn Đàn Học Tập Giải Trí Cho HS-SV
Trang 2
Đối với một số doanh nghiệp, hiệu quả kinh doanh phụ thuộc hoàn toàn vào
giá trị thông tin thì vấn đề an toàn thông tin được đặt trọng tâm hàng đầu Hiện
nay, các doanh nghiệp thường gặp khó khăn hoặc không thể trả lời các câu hỏi
như: ai đã truy cập đến dữ liệu quan trọng này và vào thời gian nào ? ai đã chỉnh
sửa thông tin nhạy cảm của khách hàng ? tại sao dữ liệu này lại bị thay đổi ? hệ
thống dữ liệu hiện có bị ai xâm nhập trái phép hay không ? Để trả lời các câu
hỏi này, doanh nghiệp cần thiết phải trang bị giải pháp giám sát đầy đủ và chính
xác, đồng thời giải pháp phải đảm bảo không tăng tải và làm chậm hệ thống
hiện tại Trong một số lĩnh vực kinh doanh nhạy cảm, tính bí mật của thông cần
được bảo đảm tuyệt đối Thông tin cần đạt tính bí mật và nguyên vẹn ngay khi
được lưu trên đĩa cứng, và khi thông tin được trao đổi vào ra trong mạng cũng
phải được đảm bảo an toàn
Điều đó cho thấy tầm quan trọng của việc bảo vệ dữ liệu trong một hệ quản trị
CSDL Dựa trên những lí do đó, chúng em quyết định chọn đề tài An ninh trong
hệ quản trị CSDL Oracle - hệ quản trị CSDL mạnh nhất cho tới nay để tìm
hiểu Trong đây sẽ đề cập tới những đặc trưng tính bảo mật CSDL và quan
trọng hơn là các chức năng an ninh trong hệ quan tri CSDL Oracle
Trong quá trình tìm hiểu sẽ không tránh khỏi thiếu sót, mong Thầy và các bạn
quan tâm theo dõi và đóng góp ý kiến, chúng em xin chân thành tiếp thu và sửa
đổi Chúng em có lời cảm ơn chân thành tới Thầy Phạm Trung Thành đã động
viên, chỉ ra hướng tìm hiểu cho tất cả các sinh viên trong đó có nhóm em cùng
tất cả các ý kiến đóng góp của các bạn!
An ninh trong hệ quản trị CSDL Oracle Page 2
Trang 3Nhom sinh vién: Lé Thi Nhung
An nỉnh trong hệ quản trị CSDL Oracle Page 3
Sưu tầm bởi: wWWw.Kenhdalhoc.com -Diễn Đàn Học Tập Giải Trí Cho HS-SV
Trang 41;5:G%C Eiơflle tt: sử) ee UN Ticaiy SPAT Ri 0á616.102160620062600uiakucvii 19
cài đặt, quản lý rất dễ dàng, các công cụ để phát triển các ứng dụng một
cách hoàn thiện và nhanh chóng Cơ sở dữ liệu oracle phù hợp cho mọi
loại dữ liệu, các Ứng dụng và các môi trường khác nhau bao gồm cả
windows và linux với chỉ phí tối thiểu
2.Đặc điểm của hệ quản trị CSDL Oracle
e©_ Oracle hỗ trợ việc quản lí dữ liệu có dung lượng hàng trăm Gb
e HO6 tro mạnh cho các tính năng nhiều user truy xuất cùng đơn vị dữ
liệu trong cùng thời gian
© C6 thé lam việc 24/24
e Tuan thU cdc chuẩn công nghiệp trên các yếu tố: Hệ điều hành, Mang,
Ngôn ngữ truy xuất
e©_ Cung cấp cơ chế an toàn và bảo mật tốt
Đảm bảo tạo các ràng buỘc toàn vẹn đơn giản và phức tạp trên CSDL
Hỗ trợ nhiều thuận lợi cho mô hình Cilent/ Server
An ninh trong hệ quản trị CSDL Oracle Page 4
Trang 5© Cho phép nhiéu chUng loai máy, hệ điều hành khác nhau chia sẻ trên
dữ liệu mạng
e Dùng để phát triển ứng dụng và có thể sử dụng trên bất kì hệ thống
nào
=> Có thể nói đây là CSDL mạnh nhất trên thế giới
2.1 Cấu trúc của Oracle
Để thiết kế và quản lý CSDL của ORACLE được tốt chúng ta cần phải hiểu
được kiến trúc cơ bản của ORACLE
-Sơ đồ kiến trúc cơ bản ORACLE như sau:
RUC & OUAN LI CSDL CUA ORACLE
| PMON j | LŒKn i | RECO j [SHON J
An ninh trong hệ quản trị CSDL Oracle Page 5
Sưu tầm bởi: wWWw.Kenhdalhoc.com -Diễn Đàn Học Tập Giải Trí Cho HS-SV
Trang 6dữ liệu (data files) và các file đăng nhập lai (Redo log files)
DATABASE ORACLH
Data Files Redo Log Files Control Files
- Eile dữ liệu (data files) :chứa đựng tất cả các dữ liệu của CSDL có cấu trúc
logic như các table,index,và chúng được lưu giỮ vật lý trong các file CSDL
- File đăng nhập lại (reedo log files )ùng cho các xử lý đăng nhập lại.Nó ghi lại
tất cả những thay đổi được tạo cho CSDL và chứa các thông tin cho việc khôi
phục
- Các file điều khiển (control files ) : ghi lại cấu trúc vật lý của CSDL
- File bién (parameter ) :chứa các tham số cho việc thiết lạp môi trường làm
việc , xác định các đặc tính của các thể hiện ,thường được định danh là Init.Ora
*Mỗi khi ORACLE bắt đầu SGA được định vị và các tiến trình nền được bắt
đầu Sự kết hợp của một vùng nhớ đệm và một tiến trình nền được gọi là một
thể hiện (Instance) của ORACLE
- Các tiến trình nền tương ứng với các công việc khác nhau phục vụ cho tất cả
mọi người dùng CSDL
Vd: Tiến trình DBWR được dùng để ghi lại đĩa những dữ liệu từ vùng nhớ đệm
CSDL (Database buffer cache)
- Các tiến trình phục vụ (server processes) : khi mỘt user chạy một ứng dụng
tương ứng hoặc một hỏi đáp dữ liệu thì các tiến trình của người dùng được đưa
ra ORACLE sé đưa ra một tiến trình phục vụ để trao đổi yêu cầu với các tiến
trình của người sử dụng
User processes < - > Server processes
Các tiến trình phục vụ sau khi thi hành các yêu cầu của người sử dụngvà đưa
trở lại kết quả cho user
An ninh trong hệ quản trị CSDL Oracle Page 6
Trang 7+ Các thông báo của SQL sẽ được thi hành bởi các server process ,các tiến trình
phục vụ sẽ đọc khối dữ liệu từ đĩa vào vùng nhớ dữ liệu được dùng chung của
SGA (vùng Shared pool).Sau đó đưa ra kết quả từ các thông báo SQL Các tiến
trình phục vụ có ba giai đoạn:
+ Giai đoạn phân tích:kiểm tra cú pháp,kiểm tra quyền truy nhập,đường dẫn
tìm kiếm có hiệu quả nhất rồi xác định cây phân tíchẳäCây phân tích sẽ được cất
giỮ trong vùng Shared SQL Area (Thuộc một phần của Shared pool trong SGA)
vùng này chứa các thông tin cho việc thi hành các thông báo SQL
SGA
Server processes
+ Giai đoạn thi hành các thông báo:
gắn cây phân tích tới vùng đệm dữ liệu
5C?
Z Server proceses
*Từ đó ta có thể kết luận về hai kiểu tiến trình (Background process và server
processes):chúng đều là những tiến trình nhưng chúng khác nhau trong phạm vi
tiến trình của mình.Các tiến trình phục vụ trao đổi các yêu cầu tỪ user,còn
background processes thi hanh nhUing céng việc của mOt instance
An ninh trong hé quan tri CSDL Oracle Page 7
Sưu tầm bởi: wWWw.Kenhdalhoc.com -Diễn Đàn Học Tập Giải Trí Cho HS-SV
Trang 8*Giới thiệu về SGA(System global area : Ving bộ nhớ hệ thống): là một tập hợp
các vùng bộ nhớ đệm dùng chung các tiến trình khác nhau có một vùng đệm
riêng và SGA được định vị bởi ORACLE cho một instance
Các vùng đệm trong SGA:
+ Shared spool: (như đã nói ở phần server processes)
ngoài ra:kích cỡ của shared pool có thể được xác định bởi biến Shared -pool-
size
+ Database buffer cache (vùng nhớ đệm cơ sở dữ liệu) :
Trứơc khi dl có thể được truy nhập một tiến trình phục vụ sẽ đặt dữ liệu vào
trong vùng đệm Database buffer cache,vùng đệm này sẽ được cát giữ những bản
sao dữ liệu đọc từ đĩa bởi một tiến trình phục vụ
Số block trong vùng này được xác định bởi biến DB_Block_buffer (kích thước
của block được xác định bởi biến DB_block_size)
+ Redo log buffer (Vùng đăng nhập lại) :
Vùng này chứa các thông tin về những thay đổi tới CSDL ORACLE sẽ ghi lại
những thay đổi tới CSDL trong vùng này tới các Redo log file.Kích cỡ của vùng
này được xác định bởi biến Log-buffer
* Các tiến trình nền (Backgound processes)
- DBWR: các khối dữ liệu đã được sửa đổi trong vùng Database buffer cache
được viết trở lại đĩa bởi 1 tiến trình nền DBWR Tiến trình này quản lý vùng
Database buffer.Cho nên các tiến trình của user luôn luôn có thể tìm được vùng
đệm rỗi
- Logwriter (LGWR): ghi lại tất cả những thay đổi tới CSDL trong vùng Redo
log buffer tới đĩa bởi một tiến trình nền có tên LGWR,mộit tiến trình nền khác là
ARCH(Achiver) có thể được bắt đầu để lưu giữ các thông tin đăng nhập lại trên
1 thiết bị cất giữ đã định trước (tape,disk)dùng cho việc khôi phục bị thất bại
LGWR viét Redo log buffer vao Redo log files khi:
+ khi user dua ra chi thi commit
+ vùng redo log buffer vượt quá 1/3 kích cỡ cho phép của vùng
+ DBWR cần để xoá sạch các khối đệm cho 1 điểm kiểm tra hoặc quá thời gian
xuất hiện
- Process Monitor (PMON): thi hành những tiến trình khôi phục khi 1 tiến trình
của user bị thất bại
An ninh trong hệ quản trị CSDL Oracle Page 8
Trang 9- System monitor (SMON): tu d6ng thi hanh việc khôi phuc instance
+ Tái tạo lại kiểu không gian bảng (table space)
- Recover process(RECO):giải quyết những thất bại liên quan tới 1 tiến trình
được phân bố
- Checkpoint (CKPT): thay LGWR viết các thông tin dỮ liệu từ vùng log buffer
tới các header của các file đl và file điều khiển
- LCKn (Lock process): Xử lý tình trạng bế tắc giữa các instance trong hệ tiến
trình song song Quản lý việc cất giữ dữ liệu của oracle
- Oracle định vị không gian cho dữ liệu trong CSDL theo :đơn vị nhỏ nhất là các
block tiếp đến là extent,segment,tablespace
* Khối dữ liệu (data block)
-Khối dữ liệu của Oracle là khối nhỏ nhất của công việc I/O nó có thể gồm
nhiều khối file vật lý được định vị từ file CSDL
-Các khối CSDL được gọi là các khối logic.NÑó tương ứngvới một hoặc 0nhiều
khối vật lý trên đĩa
- Kích cỡ 1 khối CSDL ORACLE phải được xác định trước khi tạo CSDL và nó
An ninh trong hệ quản trị CSDL Oracle Page 9
Sưu tầm bởi: wWWw.Kenhdalhoc.com -Diễn Đàn Học Tập Giải Trí Cho HS-SV
Trang 10là hằng số trong tất cả các các file của CSDL.Khi CSDL đã được thì kích cỡ của
nó không thể được thay đổi ngoài trừ việc tạo lại CSDL
Kích cỡ thường 2-:-4 KB được xác định bởi biến DB_block_size
- Thành phần của một khối:
+ Header: chứa những thông tin chung trong khối như địa chỉ khối,kiểu
segmenta
+ Table directory:bao g6m các thông tin về các bảng trong cluster và được sử
dụng với các segment hợp lại
+ Row data:cất giữ dữ liệu của các table hoặc index
+Row directory:bao gồm các thông tin về các hàng thực sự trong khối
+Free space:bao gồm tập các byte trong khối mà còn có sẵn cho việc
update, insert,delete,viéc điều khiển free space cho vic update,insert,delete trong
CSDL bang cach thay d6i giá trị của các biến:
PCTfree,PCTused, Initrsns,Matrans
+Biến PCTfree: xác định tỷ lệ % của khối để sử dụng việc update các hàng đã
tồn tại trong khối
VdCT free=20 tức là 20% của khối dùng cho việc update khi tỷ lệ của khối còn
rỗi >% của PCTfree thì việc chèn mới cho phép
+Pctused: cho phép 1 khối được xem xét lại cho việc chèn các hàng mới,các hàng
mới sẽ được chèn khi tỷ lệ % của khối đang được sử dụng nhỏ hơn giá trị
Pctused,giá trị ngầm định = 40
Vd: Pctused =40 thì sau khi không gian đã được sử dụng <40% thì hàng mới
có thể được insert vào khối này
- Để xác định các transaction đang hoạt động trên 1 khối bởi việc sử dụng 2
biến:
+INITRANS:là số các transaction đưa vào lúc bắt đầu có thể xẩy ra đồng thời
được định vị trong header của mỗi khối (ngầmđịnh=1,min=1,max=255)
+Maxtrans:là số lớn nhất các tiến trình đồng thời của khối được cung cấp (mặc
định là 255,min=1,max=255)
*EXTENT: Là 1 tập các khối kề cận được định vị tới 1 segment.Khi 1 đối tượng
của CSDL được hình thành thì không gian được định vị cho nó(các đối tượng có
thể là:table,cluster,index,roll back segment,table space)
Mỗi segment cần có ít nhất là 1 extent,riêng đoạn khôi phục cần có ít nhất là 2
extent
An ninh trong hé quan tri CSDL Oracle Page 10
Trang 11- Các extent đầu tiên gọi là Initial extent Các extent tiếp theo gọi là incrmental
extent
+ Một đối tượng sẽ được cấp 1 extent mới nếu tất cả các extent đã định vị hiện
tại của nó đã được sử dụng
+ Các extent có thể được định vị cho đối tượng khác khi segment dùng nó bị huỷ
bỏ hoặc nó thuộc phần cắt bớt đi của segment
- Điều chỉnh extent tới các segment bởi các biến cất giỮ sau:
+ Initialác định kích cỡ của extent đầu tiên được định vị cho segment ngầm định
là 5 data block
+Nextác: định kích cỡ của các extent tiếp theo ngầm định là 5 blocks
+ Maxextents: tổng số lớn nhất các extent cấp cho segment ngầm định là 99
+ Minextents:tổng số extent được cấp cho segment khi segment được tạo ngầm
định là 1
+ PCTỈncease: tỷ lệ % mà mỗi extent tiếp theo được phát triển có thể vượt quá
extent cuối cùng ngầm định là 50%
+ Optimal: kích cỡ tối ưu cho 1 đoạn khôi phục mgầm định la null
+Free lits: số danh sách của các khối rỗi cho insert vào bảng ngầm định là 1
*SEMENT : là tập các extent (1 hoặc nhiều) mà chứa đựng tất cả dữ liệu của 1
kiểu dữ liệu riêng
-Các kiểu segment:
+Đoạn dữ liệu (data segment):tập tất cả cá extent mà chúng cất giữ tất cả dữ
liệu cho một bảng hoặc 1 cluster
+Index segment:chứa tất cả các dữ liệu chỉ số cho việc tìm kiếm được
nhanhchóng
+Temporary Segment:tập các exyent cất giỮ các giữ liệu thuộc vào các bảng
tạm thời được tạo trong suốt sự thi hành 1 sắp xếp
+Roll back segment:tập các extent mà chúng cất giỮ các giỮ liệu khôi phục cho
việc khôi phục lại
+Boostrap segment:là 1 extent chứa các định nghĩa về từ điển cho các bảng từ
điển và được nạp vào khi CSDL được mở
TABLESPACE
-Dữ liệu trong một cơ sở dữ liệu của Oracle dược cất giữ logic trên các
tablespace và được cất giữ vật lý trong các file cơ sở dữ liệu.Một cơ sở dữ liệu
của Oracle có thể bao gồm một hoặc nhiều Tablespace
An ninh trong hệ quản trị CSDL Oracle Page 11
Sưu tầm bởi: wWWw.Kenhdalhoc.com -Diễn Đàn Học Tập Giải Trí Cho HS-SV
Trang 12+ Mỗi một tablespace có một chức năng riêng Tablespace hệ thống dành cho các
hoạt đọng cửa hệ thống , Tablespace user dành cho các hoạt động của user
MỘT SỐ LỆNH SQL Để Hiển thị thông tin về việc cất giữ:
- Liệt kê tất cả các cột trong tablespace cỦa người dùng (ser_tablespace) :
Code:
SQL> Desc dba_ tablespaces;
-Liệt kê các thông tin về mỗi tablespace
SQL> Select * from Dba free space;
-Hiện các thông tin chung về các file dữ liệu thuộc về mỗi tablespace :
Code:
SQL>Select file name, tablespace name, bytes from Dba_data_files;
- Hiện những thông tin chung về tất cả cdc segment trong CSDL :
Code:
SQL> Select owner, segment_name, extents,max_extents
from Dba_segments;
3.Những đặc trưng của hệ quản trị CSDL, Oracle
3.1.Truy xuất dữ liệu
¢ SQL (SEQUEL — Structured English Query Language) 14 ng6n ngU truy
xuất dữ liệu cho hệ quản trị CSDL quan hệ, SQL trong Oracle tương thích với SQL theo dạng chuẩn ANSI ( American National Standards Intistute)
e® SQL chia làm 4 lớp:
An ninh trong hệ quản trị CSDL Oracle Page 12