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 - 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 Vd: Tiến trình DBWR được
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, Oraclechiế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í 3củ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 tinnày chúng ta có thể đánh giá bước đầu Oracle là Cơ sở dữ liệu được các doanhnghiệ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 andMedium Bussiness - SMB) thích dùng, vì tính đơn giản và dễ sử dụng củaCSDL này Mức thu nhập khi làm việc với SQL-Server vì thế cũng có phầnkhô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ượngkhông nhiều
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ôngtin 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ệuhiệ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, doanhnghiệ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ờigiả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
Trang 3tâ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
Mục lục
Trang 4Lời nói đầu 1
I.Tổng quan về Oracle 4
1 Giới thiệu: 4
2.1 Cấu trúc của Oracle 5
3.Những đặc trưng của hệ quản trị CSDL Oracle 15
3.1.Truy xuất dữ liệu 15
3.2.Tính đồng hành 15
3.3.Tính an toàn 16
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 ) 19
1.3.Role (Vai trò ) 20
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 23
1.Tổng quan 23
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
IV.Tài liệu tham khảo 26
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
Trang 5lý 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 ứngdụ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ệutrong 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
-Sơ đồ kiến trúc cơ bản ORACLE như sau:
Trang 6Mộ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
Trang 7như 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) dùng cho các xử lý đăng nhập lại Nó ghi lạitất cả những thay đổi được tạo cho CSDL và chứa các thông tin cho việc khôiphụ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
- 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
Vd: Tiến trình DBWR được dùng để ghi lại đĩa những dữ liệu từ vùng nhớ đệm
- 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
User processes < -> Server processesCá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
+ 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ìnhphục vụ sẽ đọc khối dữ liệu từ đĩa vào vùng nhớ dữ liệu được dùng chung củaSGA (vùng Shared pool) Sau đó đưa ra kết quả từ các thông báo SQL Các tiến
Trang 8trì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ìmkiế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
+ 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à serverprocesses): chúng đều là những tiến trình nhưng chúng khác nhau trong phạm vitiế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
Trang 9background 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ợpcá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
+ 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 trongvù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
+ 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ạinhữ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
- DBWR: các khối dữ liệu đã được sửa đổi trong vùng Database buffer cache đượcviế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 Databasebuffer.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 logbuffer 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 1thiết bị cất giữ đã định trước (tape, disk) dùng cho việc khôi phục bị thất bại
Trang 10LGWR viết Redo log buffer vào Redo log files khi:
+ 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
- Process Monitor (PMON): thi hành những tiến trình khôi phục khi 1 tiến trình
- 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
- Oracle định vị không gian cho dữ liệu trong CSDL theo: đơn vị nhỏ nhất là các
Trang 11
* 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ềukhố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 nhiều
- 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
+ Header: chứa những thông tin chung trong khối như địa chỉ khối, kiểu segmenta+ Table directory: bao gồm các thông tin về các bảng trong cluster và được sử
+ 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
Trang 12+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
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
Vd: CT free=20 tức là 20% của khối dùng cho việc update khi tỷ lệ của khối cònrỗ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àngmới sẽ được chèn khi tỷ lệ % của khối đang được sử dụng nhỏ hơn giá trị Pctused,
Vd: Pctused =40 thì sau khi không gian đã được sử dụng <40% thì hàng mới có
- Ðể 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
*EXTENT: Là 1 tập các khối kề cận được định vị tới 1 segment Khi 1 đối tượngcủ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à 2extent
- Các extent đầu tiên gọi là Initial extent Các extent tiếp theo gọi là incrmentalextent
+ 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
Trang 13củ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à
+ 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
+ Đ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
+ Index segment: chứa tất cả các dữ liệu chỉ số cho việc tìm kiếm đượcnhanhchó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ạmthờ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
+ Boostrap segment: là 1 extent chứa các định nghĩa về từ điển cho các bảng từ
Trang 14đ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ó
+ Mỗi một tablespace có một chức năng riêng Tablespace hệ thống dành cho cáchoạ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;
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:
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:
Trang 15SQL> 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ữ truyxuất dữ liệu cho hệ quản trị CSDL quan hệ, SQL trong Oracle tươngthích với SQL theo dạng chuẩn ANSI (American National StandardsIntistute)
• 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ữ điều khiển hệ thống (SYCL- System Control Language)
• PL/ SQL (Procedure Language / SEQUEL) là ngôn ngữ mở rộng củaSQL kết hợp với ngôn ngữ lập trình có cấu trúc
• Tính nhất quán:
+ Đảm bảo dữ liệu nhất quán trong thời gian đọc