BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DUY TÂN
KHOA SAU ĐẠI HỌC
ĐỀ TÀI:
AN NINH TRONG HỆ QUẢN TRỊ CSDL ORACLE
Sinh viên thực hiện : Ngô Minh Cường.
Lớp : K7MCS.
Đà Nẵng, tháng 6 năm 2013
Mục lục
Lời nói đầu 3
I.Tổng quan về Oracle 5
1. Giới thiệu: 5
2.1. Cấu trúc của Oracle 6
3.Những đặc trư ng của hệ quản trị CSDL Oracle 14
3.1.Truy xuất dữ liệu 14
3.2.Tính đồng hành 15
3.3.Tính an toàn 15
3.4.Backup và Restore dữ li ệu 16
3.5.CSDL phân tán 16
II.Bảo mật CSDL 17
1.Các cơ chế bảo mật: 18
1.1.User CSDL và Schema 18
1.2. Privilege ( Đặc quyền ) 20
1.3.Role (Vai trò ) 21
1.4.Các xác lập lưu trữ và quota 21
1.5.Các Profile (lược sử ) và giới hạn tài nguyên 21
2.Trusted Oracle 23
III.Bảo mật của ứng dụng 24
1.Tổng quan 24
2.Sử dụng đối tượng CSDL của ứng dụng 24
3.Bảo mật ứng dụng điều khiể n bằng bảng 25
đượ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 đó, tôi 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, tôi xin chân thành tiếp thu và sửa đổi. Tôi có lời cả m ơn
chân thành tới Thầy đã động viên, chỉ ra hướng tìm hiểu cho tất cả các sinh viên trong đó
có tôi cùng tất cả các ý kiến đóng góp của các bạn
Người thực hiện : Ngô Minh Cường.
An ninh trong hệ quản trị CSDL Oracle Page 4
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.
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 7
+ 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.
An ninh trong hệ quản trị CSDL Oracle Page 8
+ 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
An ninh trong hệ quản trị CSDL Oracle Page 10
- Các khối CSDL được gọi là các khối logic.Nó tương ứng với một hoặ nhiề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.
+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)
An ninh trong hệ quản trị CSDL Oracle Page 12
+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;
Hiện các thông tin chung về các file dữ liệu thuộc về mỗi tablespace :
SQL>Select file_name, tablespace_name, bytes from Dba_data_files;
An ninh trong hệ quản trị CSDL Oracle Page 13
- 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
- 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ể.
An ninh trong hệ quản trị CSDL Oracle Page 15
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.
+ Thời gian biểu ( schedule)
3.5. CSDL phân tán
3.5.1 Xử lí phân tán
An ninh trong hệ quản trị CSDL Oracle Page 16
- Dùng nhiều bộ xử lí tiế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:
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
An ninh trong hệ quản trị CSDL Oracle Page 20
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)
- 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 hàng 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
+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
- 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.
An ninh trong hệ quản trị CSDL Oracle Page 23
- 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 sẽ bị 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.
- 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, 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ạ
An ninh trong hệ quản trị CSDL Oracle Page 25