Tải bản đầy đủ (.pdf) (1,822 trang)

ĐỀ TÀI AN NINH TRONG HỆ QUẢN TRỊ CSDL ORACLE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (19.57 MB, 1,822 trang )


An ninh trong hệ quản trị CSDL Oracle Page 1








AN NINH TRONG CƠ SỞ DỮ LIỆU









An ninh trong hệ quản trị CSDL Oracle Page 2

Mục lục
Lời nói đầu. 1
I.Tổng quan về Oracle. 5
1. Giới thiệu: 5
2.Đặc điểm của hệ quản trị CSDL Oracle 5
2.1. Cấu trúc của Oracle 5
3.Những đặc trưng của hệ quản trị CSDL Oracle. 13
3.1.Truy xuất dữ liệu 13
3.2.Tính đồng hành 14


3.3.Tính an toàn 14
3.4.Backup và Restore dữ liệu 14
3.5.CSDL phân tán 15
II.Bảo mật CSDL 15
1.Các cơ chế bảo mật: 16
1.1.User CSDL và Schema 16
1.2. Privilege ( Đặc quyền ) 17
1.3.Role (Vai trò ) 18
1.4.Các xác lập lưu trữ và quota 18
1.5.Các Profile (lược sử ) và giới hạn tài nguyên 19
1.6.Sự kiểm tra(Auditting) 20
2.Trusted Oracle 20
III.Bảo mật của ứng dụng 21
1.Tổng quan 21
2.Sử dụng đối tượng CSDL của ứng dụng 21
3.Bảo mật ứng dụng điều khiển bằng bảng 22
IV.Tài liệu tham khảo 23
An ninh trong hệ quản trị CSDL Oracle Page 3

Lờ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 tốt.
Microsoft SQL-Server thì được các 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 4

Đố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ệ quản trị 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!
Nhóm sinh viên: Lê Thị Nhung.
Nguyễn Thị Luận.







An ninh trong hệ quản trị CSDL Oracle Page 5

I.Tổng quan về Oracle.
1. Giới thiệu:
Cơ sở dữ liệu oracle là một cơ sở dữ liệu mạnh mẽ nhất thế giới. Được
thiết kế để triển khai cho mọi môi trường doanh nghiệp. Việc 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 chi phí
tối thiểu.
2.Đặc điểm của hệ quản trị CSDL Oracle.
Oracle hỗ trợ việc quản lí dữ liệu có dung lượng hàng trăm Gb
Hỗ trợ 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.
Có thể làm việc 24/24.
Tuân thủ các chuẩn công nghiệp trên các yếu tố: Hệ điều hành, Mạng,
Ngôn ngữ truy xuất.

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.
Cho phép nhiều chủng loại máy, hệ điều hành khác nhau chia sẻ trên dữ
liệu mạng .
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:

An ninh trong hệ quản trị CSDL Oracle Page 6



Một CSDL của ORACLE thì bao gồm các file điêu khiển (Control files),các file dữ
liệu (data files) và các file đăng nhập lại (Redo log files).




- File 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

An ninh trong hệ quản trị CSDL Oracle Page 7

- 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.
+ 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

An ninh trong hệ quản trị CSDL Oracle Page 8

+ 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


*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 hành những công việc của một instance.
*Giới thiệu về SGA(System global area :Vùng 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) :
An ninh trong hệ quản trị CSDL Oracle Page 9

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ột 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 vào Redo log files khi:
+ khi user đưa ra chỉ thị 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.
- System monitor (SMON): tự động thi hành việc khôi phục 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 dl 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

An ninh trong hệ quản trị CSDL Oracle Page 10



* 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ó là
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 segmentẳ
+ Table directory:bao gồm 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 việc update,insert,delete trong
CSDL bằng cách thay đổi giá trị của các biến:
PCTfree,PCTused,Initrsns,Matrans.
An ninh trong hệ quản trị CSDL Oracle Page 11

+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
- 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%.
An ninh trong hệ quản trị CSDL Oracle Page 12

+ 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
+ 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
Code:
SQL> Select * from Dba_tablespaces;
-Hiện các Extent của không gian rỗi trong mỗi tablespace :
Code:
SQL> Select * from Dba_free_space;
An ninh trong hệ quản trị CSDL Oracle Page 13

-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ả các 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) là ngôn ngữ 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)
SQL chia làm 4 lớp:
- Ngôn ngữ định nghĩa dữ liệu ( DDL – Data Difinition
Language)
+ Mức quan niệm: CREATE DATABASE, TABLE…….
+ Mức ngoài: CREATE VIEW, GRANT……
+ Mức trong: CREATE INDEX,…
- Ngôn ngữ thao tác dữ liệu ( DML – Data Manipulation
Language)
+ Truy xuất: SELECT
+ Cập nhật: INSERT, UPDATE, DELETE.
- Ngôn ngữ điều khiển dữ liệu ( DCL- Data Control Language)
- Ngôn ngữ diều khiển hệ thống ( SYCL- System Control
Language)
PL/ SQL ( Procedure Language / SEQUEL ) là ngôn ngữ mở rộng của
SQL kết hợp với ngôn ngữ lập trình có cấu trúc

An ninh trong hệ quản trị CSDL Oracle Page 14

3.2.Tính đồng hành
Các yêu cầu sau đây cần thỏa mãn: Dữ liệu đọc và bổ sung nhất quán , thực
hiện tốt các yêu cầu của người dùng
Tính đồng hành: Vấn đề cần điều khiển tính ra vào với các user khi truy
xuất cùng một đơn vị dữ liệu sao cho tại cùng một thời điểm cho giản
ước thời gian chờ là tối thiểu, tới mức gần bằng 0.
Tính nhất quán:
+ Đảm bảo dữ liệu nhất quán trong thời gian đọc.
+ Đảm bảo người đọc không chờ người viết và ngươc lại.
+ Đảm bảo người viết phải chờ người viết khác nếu cùng cập nhật một
CSDL
3.3.Tính an toàn
Đảm bảo tính an toàn dữ liệu nhờ các kiểm soát:
Quyền truy cập vào CSDL
Quyền trên CSDL nào
Quyền trên đối tượng nào trong CSDL, bao gồm:
- Quyền hệ thống: Cho phép tác động đến hệ thống, là quyền rất mạnh.
- Quyền đối tượng: Cho phép tác động lên một đối tượng cụ thể.
3.4.Backup và Restore dữ liệu
Backup: Trong khi backup CSDL vẫn có thể hoạt động, cơ chế backup
cần uyển chuyển.Người ta cần backup với những lí do:
- Xóa nhầm dữ liệu.
- Phát biểu nhầm các câu lệnh: Insert, Update.
- Lỗi đĩa cứng.
- Mất mát do mất cắp.
Một cách khắc phục là tạo file backup gồm 2 dạng :
- Full backup: Toàn bộ file tạo CSDL
- Partial backup: Chỉ backup một phần của dữ liệu

Restore :
- Là quá trình hồi phục lại CSDL ban đầu từ CSDL được backup
- Thứ tự backup phụ thuộc vào: + Kiểu backup.
An ninh trong hệ quản trị CSDL Oracle Page 15

+ Thời gian biểu ( schedule)
3.5.CSDL phân tán
3.5.1 Xử lí phân tán
Dùng nhiều bộ xử lí thiến trình thành các tập công việc có liên quan.
Phân công công việc cho các bộ xử lí khác cùng hợp tác làm việc . Oracle
hỗ trợ công việc xử lí phân tán bằng kiến trúc Client/ Server.
Client tập trung cho công việc ra yêu cầu trình bày dữ liệu
Server tiếp nhận các yêu cầu từ Client, xử lí và trả về kết quả cho Client
3.5.2 CSDL phân tán
Là một mạng CSDL quản lí bởi nhiều server CSDL , xuất hiện đối với
người dùng như một CSDL duy nhất
Dữ liệu có thể truy xuất bổ sung đồng thời tại cùng một thời điểm
Một số khái niệm:
- Local Database: CSDL mà người dùng kết nối trực tiếp
- CSDl còn lại được gọi là Remove Database
- Client Database: CSDl cục bộ truy xuất từ xa.
II.Bảo mật CSDL
Có rất nhiều mối nguy hiểm tiềm ẩn:

An ninh trong hệ quản trị CSDL Oracle Page 16

Cũng như mối nguy hiểm từ ngoại mạng:

Vì thế các hệ thống nhiều user như Oracle luôn bao gồm các đăc trưng bảo mật
kiểm soát việc được truy xuất và sử dụng CSDL.

1.Các cơ chế bảo mật:
Ngăn cản sự truy xuất dữ liệu trái phép
Ngăn cản sự truy xuất trái phép các đối tượng schema
Điều khiển việc sử dụng đĩa
Điều khiển việc sử dụng các tài nguyên hệ thống ( như thời gian CPU)
Giám sát các hành động của user
Các cơ chế bảo mật trên được thực hiện bởi các phương tiện sau
1.1.User CSDL và Schema
Mỗi CSDL Oracle có một danh sách username. Để tru xuất một CSDL, một
username cần sử dụng CSDL gắn với một username hợp lệ của CSDL. Mỗi
username có một password kết hợp để ngăn ngừa sự truy xuất trái phép. Một
CSDL cần có một phương pháp nhận biết user của mình, phân biệt được tầm vực
An ninh trong hệ quản trị CSDL Oracle Page 17

hoạt đông và quyền hạn của user đó để có thể cung ứng đủ và đúng các yêu cầu
được phép của user
Nguyên lí: hoàn toàn giống nguyên lí của các CSDL khác, của hệ điều hành,
các trò chơi,…… Oracle sẽ hỏi user về định danh username và password
tương ứng. Nếu câu trả lời khớp với số liệu đã được lưu trong hệ thống bảo
mật CSDL, user được quyền truy cập CSDL, ngoài ra user sẽ phải nhập lại
hay sẽ bị cấm truy nhập. Nếu dùng khả năng giao tiếp user của công cụ thì
password mà ta nhập sẽ không thể hiện trên màn hình, giúp bảo mật nội
dung của password.
VD: Cách nhập password thông qua giao tiếp của chương trình
%sqlplus
Enter User: Anna
Enter Password:
SQL> show user
user is Anna


Domain Security ( Bảo mật vùng )
Mỗi user có một Domain security là một tập các tính chất xác định những
điều như:
- Các hoạt động (Privilege và Role) sẵn có cho user
- Các quota tablespace ( Không gian đĩa sẵn có cho user)
- Giới hạn tài nguyên hệ thống ( ví dụ thời gian xử lí CPU) cho user
1.2. Privilege ( Đặc quyền )
Một Privilege là quyền thực hiện một loại lệnh SQL đặc biệt , một số Privilege
như:
- Quyền kết nối vào CSDL (tạo ra một session)
An ninh trong hệ quản trị CSDL Oracle Page 18

- Quyền tạo bảng trong schema của mình
- Quyền chọn các hàng từ các user khác
- Quyền thực hiện các stored procedure của user khác
Các Privilege của một CSDL Oracle có thể chia thành 2 loại riêng biệt:
Privilege hệ thống và Privilege các đối tượng schema
Privilege hệ thống
Cho phép user thực hiện một hành động mức hệ thống đặc biệt hay một hành
động đặc biệt trên một loại đối tượng schema đặc biệt. VD: đặc quyền tạo ra
một tablespace hay xóa các hang trong CSDL. Nhiều đặc quyền hệ thống chỉ
dành cho người quản trị và các nhà phát triển ứng dụng do chúng rất mạnh.
Privilege đối tượng schema
Cho phép các user thực hiện một hành động đặc biệt trên một đối tượng schema
đặc biệt. VD: đặc quyền xóa một số hang của một bảng, đặc biệt là một
Privilege đối tượng . Privilege đối tượng được gán cho các người dùng cuối
Cấp Privilege
Một user có thể được nhận Privilege từ 2 cách sau:
- Cấp tường minh
- Các Privilege có thể gán cho các Role sau đó role có thể được gán cho

một hay nhiều user( phổ biến hơn )
1.3.Role (Vai trò )
Role là một nhóm các Privilege có liên quan được đặt tên để cấp cho các user
hay các role khác.Các tính chất cho phép quản lí Privilege thông qua role:
- Giảm việc cấp Privilege
- Tính sẵn có chọn lọc của Privilege
- Hỗ trợ ứng dụng
1.4.Các xác lập lưu trữ và quota
Oracle cung cấp các biện pháp để định hướng và giới hạn việc sử dụng không
gian của CSDL trên từng user , bao gồm:
An ninh trong hệ quản trị CSDL Oracle Page 19

- Tablespace mặc định : gíup Oracle chỉ định nơi lưu trữ trong trường hợp
vị trí của đối tượng schema không được chỉ định
- Tablespace tạm thời: giảm sự tranh chấp xuất nhập giữa các segment tạm
và các loại segment khác.
- Các quota Tablespace: điều khiển chon lọc lượng không gian đĩa tiêu tốn
bởi các đối tượng của các schema xác định.
1.5.Các Profile (lược sử ) và giới hạn tài nguyên
Mỗi user được gán một profile chỉ định các giới hạn trên một số tài nguyên hệ
thông sẵn có cho user, gồm:
- Số session có thể được thiết lập đồng thời bởi user.
- Thời gian truy xuất CPU
+ Sẵn có cho session của user
+ Sẵn có cho một lần gọi Oracle của một lệnh SQL
- Lượng xuất nhập logic:
+ Sẵn có cho session của user
+ Sẵn có cho một lần gọi Oracle của một lệnh SQL
- Lượng thời gian rỗi cho phép của session của user
- Lượng thời gian kết nối cho phép của một session của user

- Các giới hạn password
+ Khóa account sau nhiều lần cố gắng login thất bại
+ Sự hết hạn của password và chu kì gia hạn
+ Sự sử dụng lại password và các hạn chế phức tạp
Các profile khác nhau có thể tạo ra và gán riêng biệt cho từng user. Các user không
được gắn tường minh một profile riêng biệt so dùng profile mặc định
Oracle chỉ sử dụng Profile khi tham số RESOURCE_LIMIT trong tập tin
INIT.ORA có giá trị là TRUE(mặc định là False). Dưới đây là danh sách
một số tài nguyên có thể chỉ định rõ trong các profile :
- SESSION_PER_USER: xác định số tối đa các phiên làm việc mà user có
thể truy cập CSDL đồng thời.
- CPU_PER_SESSION: chỉ định tổng thời gian, tính bằng phút của CPU
mà user có thể sử dụng trong 1 kết nối CSDL đơn
An ninh trong hệ quản trị CSDL Oracle Page 20

- CPU_PER_CALL: chỉ định tổng thời gian CPU dành cho user trong một
lần gọi thực hiện lệnh SQL
- LOGICAL_READS_PER SESSION: chỉ định tổng các blocks được đọc
logic mà user có thể thực hiện trong phiên làm việc đã cho.
- LOGICAL_READS_PER_CALL: chỉ định tổng các blocks được đọc
logic trong một lần thực hiện lệnh gọi SQL.
- IDLE_TIME: chỉ định thời gian (tính bằng phút) không hoạt động tối đa
mà một kết nối có thể nhận. Khi thời gian không hoạt động vượt quá giới
hạn này, kết nối so ị ngắt.
- CONNECT_TIME: chỉ định thời gian tối đa mà một kết nối sử dụng
(tính bằng phút). Nó bao gồm cả thời gian hoạt động và không hoạt động.
Cần lưu ý rằng, khi thời gian két nối vượt quá giới hạn, kết nối sẽ bị ngắt,
nhưng công cụ thực hiện kết nối (như SQL*Plus,….) không bị đóng.

1.6.Sự kiểm tra(Auditting)

Oracle cho phép kiểm tra chọn lọc các uhành động của user. Sự giám sát có thể
được thực hiện ở 3 mức:
Kiểm tra lệnh: kiểm tra lệnh SQL mà khong quan tâm tới các đối tượng
schema
Kiểm tra đặc quyền : kiểm tra các đặc quyền hệ thống quan trọng mà không
quan tâm đến các đối tượng schema
Kiểm tra các đối tượng schema: Kiểm tra đến sự truy xuất đến một schema
nhất định mà không quan tâm đến user
2.Trusted Oracle
Trusted Oracle là một sản phẩm quản lí bảo mật CSDL nhiều mức của công
ty Oracle:
Được thiết kế để cung cấ khả năng bảo mật cao nhằm phục vụ yêu cầu các tổ
chức xử lí những dữ liệu tế nhị hay mật.
Tương thích với các sản phẩm cơ bản của Oracle
Hỗ trợ tất cả các tính năng cơ bản của Oracle
An ninh trong hệ quản trị CSDL Oracle Page 21

Thực hiện kiểm soát truy nhập ủy nhiệm( mandatory access control-
MAC)trên một giả rộng cá môi trường hệ điều hành bảo mật nhiều cấp.
- MAC là biện pháp giới hạn sự truy xuất thông tin dựa trên các nhãn .
+ Nhãn của user chỉ định thông tin nào user được phép truy xuất và loại
truy xuất mà user được thực hiện
+ Nhãn của đối tượng schema chỉ định độ quan trọng của thông tin mà nó
chứa
III.Bảo mật của ứng dụng
1.Tổng quan
Chế độ bảo mật của ứng dụng giới hạn việc truy cập CSDL từ phía Cilent của
hệ thống, giới hạn việc truy xuất các đối tượng giao diện đặc biệt. Nói rộng ra
nó bao gồm cả việc sử dụng bất kì đối tượng CSDL nào của ứng dụng được
dùng để nâng cao chế độ bảo mật

Nguyên do cần có thêm chế độ Bảo mật của ứng dụng bên cạnh bảo mật của
CSDL :
Tăng cường và bổ sung chế độ bảo mật của CSDL
Có thể nâng cao mức bảo mật CSDL bằng cách giới hạn hơn nữa việc truy
xuất đối tượng CSDL và cung cấp một lớp trừu tượng bổ xung
Trong các giao diện ứng dụng thông thường , giao diện cho phép các user
làm việc với CSDL thông qua các trình đơn, các forms tương ứng với các
tiến trình và các đối tượng hoạt động , thuận lợi cho việc ngăn ngừa user
hiểu biết tên các bảng và các cột được truy xuất.
Trong nhiểu trường hợp thông tin của CSDL so dùng để quản lí các hoạt
động của giao diện, dựa trên các role của user. Các bảng hệ thống chứa các
thông tin bảo mật cho ứng dụng sẽ cho phép các khả năng nào của giao diện
là sẵn có. Các tùy chọn trình đơn và các forms sẽ được hiện ra cho các user
có đặc quyền và sẽ ẩn đi khi user không được phép
Có thể truy xuất CSDL từ nhiều ứng dụng khác nhau
2.Sử dụng đối tượng CSDL của ứng dụng
Các đối tượng cơ bản (cluster, tables, indexes, sequence) và các quyền cấp
cho các đối tượng này thuộc loại bảo mật CSDL. Các đối tượng khác như view,
An ninh trong hệ quản trị CSDL Oracle Page 22

procedure và function được coi là các đối tượng CSDL ứng dụng và các quyền
cấp về chúng thuộc loại bảo mật ứng dụng
Script là nơi bảo mật CSDL chấm dứt và là nơi bảo mật ứng dụng bắt đầu .
Synonym chung được tạo để che ID hệ thống của DBA, giới hạn quyền
được gán cho super-user của ứng dụng
Các đối tượng ứng dụng bao gồm các procedure, các views, functions,
packages
Ta cần phải dùng các stored procedure và function để thực hiện tất cả các
chuyển tác, vì:
- Sử dụng các subroutine của CSDL sẽ giữ được tính toàn vẹn.

- Sử dụng procedure và function cũng nâng cáo tính bảo mật CSDL
- Sử dụng package ta có thể gói trọn các biến, cursor, hằng và các
subprogram trong một đơn vị logic giúp đơn giản tiến trình gán các đặc
quyền và nâng cao hiệu suất chung
3.Bảo mật ứng dụng điều khiển bằng bảng
Thường dùng trong các trường hợp giới hạn của chế độ bảo mật đòi hỏi sự
linh hoạt và thường xuyên thay đổi
Ta có thể dùng các thông tin lưu trong bảng của CSDL Oracle để điều khiển
chế độ bảo mật ứng dụng
Quy trình:
Tạo ra 1 bảng chứa các thông tin về các role của user trong ứng dụng, trong
đó mỗi user có một role.
Tạo một bảng xác định các tùy chọn của trình đơn mà một role có thể sử
dụng hay không
Xây dựng một module khởi tạo để xử lí nội dung của bảng trên , nhằm tạo ra
một trình đơn thực sự
Tạo một trình đơn và các nút control động khi khởi tạo cửa sổ ứng dụng
Cần chú ý các vấn đề :
- Cần phải có một cách xác định role của user trước khi khới tạo giao diện,
menu.
An ninh trong hệ quản trị CSDL Oracle Page 23

- Trong bảng lưu trữ dữ liệu cấn phải phân định rõ và thống nhất về các
định danh trong ứng dụng và trong CSDL
Tóm lại, bảo mật ứng dụng không thể thay thế bảo mật CSDL nhưng nó nâng cao
độ an toàn của hệ thống bảo mật CSDL. Nó xác lập các nguyên tắc mà không thể
xây dựng được bằng ràng buộc toàn vẹn

Trên đây là chúng em đã trình bày một cách tổng quát và ngắn gọn về đặc trưng
cũng như các chức năng an ninh trong hệ quản trị CSDL Oracle. Rất cảm ơn Thầy

và các bạn đã tập trung theo dõi.
IV.Tài liệu tham khảo
Giáo trình lý thuyết và thực hành Oracle.
Giáo trình kiến trúc và quản trị Oracle.
.

Google.com


11/3/2008 Bài giảng - CSDL và Phần mềm ứng dụng 1
Quản trị Cơ sở dữ liệu và
Phần mềm ứng dụng
Bộ môn CNTT
Khoa Tin học Thương mại

×