Cơ sở dữ liệu sử dụng các hệ quản trị cơ sở dữ liệu đã đáp ứng được các yêu cầu về lưu giữ và quản lý dữ liệu.Vấn đề bảo mật cơ sở dữ liệu càng trở nên cấp thiêt.Giám sát và kiểm toán đã
Trang 1MỤC LỤC
Trang
MỤC LỤC 1
Operating System 4
DANH MỤC CÁC HÌNH VẼ 5
DANH MỤC CÁC BẢNG 9
LỜI MỞ ĐẦU 12
Chương 1 14
1.1 ƯU ĐIỂM CỦA ORACLE 14
1.2 TÍNH NĂNG CẢI TIẾN CỦA ORACLE 10G (ORACLE 10 GRID COMPUTING) 15
1.2.1 Oracle Database 10g 17
1.2.2 Oracle Application Server 10g 17
1.2.3 Oracle Enterprise Manager 10g 18
1.2.4 Cải tiến an ninh cơ sở dữ liệu riêng ảo (VPD) Oracle 10g 19
1.3 KIẾN TRÚC ORACLE SERVER 22
1.3.1 Oracle Instance 23
1.3.1.8 System Monitor (SMON) 29
1.3.1.9 Process Monitor (PMON) 29
1.3.1.10 Checkpoint Process (CKPT) 29
1.3.2 Oracle database 30
1.4 QUẢN TRỊ CSDL VỚI ORACLE ENTERPRISE MANAGER (OEM) 36
1.4.1 Khởi động OEM trên server 37
Trang 21.4.2 Làm việc với OEM 37
1.4.3 Các chức năng chính của OEM 39
1.5 KẾT NỐI TỚI ORACLE SERVER 40
1.5.1 Mô hình kết nối 40
1.5.2 Một số khái niệm cơ bản liên quan đến kết nối 41
1.5.2.1 Connection (liên kết) 41
1.5.2.2 Session (phiên) 41
1.6 BẢO MẬT TRONG ORACLE 41
1.6.1 Trình tự kiện toàn an ninh Oracle Database 10g .42
1.6.2 Bảo mật cơ sở dữ liệu 43
1.6.2.1 Hạn chế truy cập đến dữ liệu và dịch vụ 43
1.6.2.2 Chứng thực người dùng 43
1.6.2.3 Giám sát cho Hành vi Đáng ngờ 44
1.6.3 Nguyên lý đặc quyền tối thiểu 44
1.6.3.1 Các nguyên lý đặc quyền tối thiểu 45
1.6.3.2 Áp dụng các nguyên tắc đặc quyền tối thiểu 45
Chương 2 46
2.1 TẠI SAO PHẢI KIỂM TOÁN 46
2.1.1 Các hiểm hoạ đối với an toàn cơ sở dữ liệu 46
2.1.2 Các yêu cầu bảo vệ cơ sở dữ liệu 49
2.1.3 Vai trò của kiểm toán trong việc bảo vệ cơ sở dữ liệu 50
2.2 TỔNG QUAN VỀ KIỂM TOÁN 50
2.2.1 Định nghĩa kiểm toán 50
Trang 32.2.2.1 Database Audit Trail (DBA_AUDIT_TRAIL) 54
2.2.2.2 Operating System Audit Trail 55
2.2.2.3 Syslog Audit Trail 58
2.2.2.4 Operating System and Syslog Audit Records 59
2.2.2.5 Các bản ghi luôn có trong Operating System and Syslog Audit Trail 59
2.2.3 Duy trì đường mòn kiểm toán (Maintaining the Audit Trail) 60
2.3 CÁC LOẠI KIỂM TOÁN 61
2.3.1 Mandatory Auditing 62
2.3.2 Standard Database Auditing 63
2.3.2.1 Các bước kiểm toán 64
2.3.2.2 Trang Enterprise Manager Audit 75
2.3.2.3 Sử dụng và duy trì thông tin kiểm toán 76
2.3.3 Value-Based Auditing 76
2.3.4 Fine-Grained Auditing 79
2.3.4.1 Các tính năng vượt trội của kiểm toán FGA 79
2.3.4.2 Các thủ tục trong gói DBMS_FGA 82
2.3.4.3 FGA Guidelines (Hướng dẫn sử dụng FGA) 87
2.3.4.4 Một Số Hạn Chế Của FGA 88
2.3.5 DBA Auditing 88
2.3.5.1 Khởi tạo kiểm toán 88
2.3.5.2 Xem kiểm toán 89
Chương 3 90
3.1 KỊCH BẢN DEMO 91
Trang 43.2 QUY MÔ DEMO 94
3.3 KẾT QUẢ ĐẠT ĐƯỢC 102
Chương 4 102
4.1 KẾT QUẢ ĐẠT ĐƯỢC 102
4.2 HẠN CHẾ 103
4.3 HƯỚNG PHÁT TRIỂN .103
4.4 ĐỀ XUẤT 103
DANH MỤC CÁC TỪ VIẾT TẮT
SQL Structured Query Language
PL/SQL Procedural Language/Structured Query Language
XML eXtensible Markup Language
VPD Virtual Private Database
Trang 5OEM Oracle Enterprise Manager
DANH MỤC CÁC HÌNH VẼ
Trang
MỤC LỤC 1
Operating System 4
DANH MỤC CÁC HÌNH VẼ 5
DANH MỤC CÁC BẢNG 9
LỜI MỞ ĐẦU 12
Chương 1 14
1.1 ƯU ĐIỂM CỦA ORACLE 14
1.2 TÍNH NĂNG CẢI TIẾN CỦA ORACLE 10G (ORACLE 10 GRID COMPUTING) 15
1.2.1 Oracle Database 10g 17
Trang 61.2.2 Oracle Application Server 10g 17
1.2.3 Oracle Enterprise Manager 10g 18
1.2.4 Cải tiến an ninh cơ sở dữ liệu riêng ảo (VPD) Oracle 10g 19
1.3 KIẾN TRÚC ORACLE SERVER 22
1.3.1 Oracle Instance 23
1.3.1.8 System Monitor (SMON) 29
1.3.1.9 Process Monitor (PMON) 29
1.3.1.10 Checkpoint Process (CKPT) 29
1.3.2 Oracle database 30
1.4 QUẢN TRỊ CSDL VỚI ORACLE ENTERPRISE MANAGER (OEM) 36
1.4.1 Khởi động OEM trên server 37
1.4.2 Làm việc với OEM 37
1.4.3 Các chức năng chính của OEM 39
1.5 KẾT NỐI TỚI ORACLE SERVER 40
1.5.1 Mô hình kết nối 40
1.5.2 Một số khái niệm cơ bản liên quan đến kết nối 41
1.5.2.1 Connection (liên kết) 41
1.5.2.2 Session (phiên) 41
1.6 BẢO MẬT TRONG ORACLE 41
1.6.1 Trình tự kiện toàn an ninh Oracle Database 10g .42
1.6.2 Bảo mật cơ sở dữ liệu 43
1.6.2.1 Hạn chế truy cập đến dữ liệu và dịch vụ 43
1.6.2.2 Chứng thực người dùng 43
Trang 71.6.2.3 Giám sát cho Hành vi Đáng ngờ 44
1.6.3 Nguyên lý đặc quyền tối thiểu 44
1.6.3.1 Các nguyên lý đặc quyền tối thiểu 45
1.6.3.2 Áp dụng các nguyên tắc đặc quyền tối thiểu 45
Chương 2 46
2.1 TẠI SAO PHẢI KIỂM TOÁN 46
2.1.1 Các hiểm hoạ đối với an toàn cơ sở dữ liệu 46
2.1.2 Các yêu cầu bảo vệ cơ sở dữ liệu 49
2.1.3 Vai trò của kiểm toán trong việc bảo vệ cơ sở dữ liệu 50
2.2 TỔNG QUAN VỀ KIỂM TOÁN 50
2.2.1 Định nghĩa kiểm toán 50
2.2.2 Các loại đường mòn (Trail) và bản ghi (Record) 51
2.2.2.1 Database Audit Trail (DBA_AUDIT_TRAIL) 54
2.2.2.2 Operating System Audit Trail 55
2.2.2.3 Syslog Audit Trail 58
2.2.2.4 Operating System and Syslog Audit Records 59
2.2.2.5 Các bản ghi luôn có trong Operating System and Syslog Audit Trail 59
2.2.3 Duy trì đường mòn kiểm toán (Maintaining the Audit Trail) 60
2.3 CÁC LOẠI KIỂM TOÁN 61
2.3.1 Mandatory Auditing 62
2.3.2 Standard Database Auditing 63
2.3.2.1 Các bước kiểm toán 64
2.3.2.2 Trang Enterprise Manager Audit 75
Trang 82.3.2.3 Sử dụng và duy trì thông tin kiểm toán 76
2.3.3 Value-Based Auditing 76
2.3.4 Fine-Grained Auditing 79
2.3.4.1 Các tính năng vượt trội của kiểm toán FGA 79
2.3.4.2 Các thủ tục trong gói DBMS_FGA 82
2.3.4.3 FGA Guidelines (Hướng dẫn sử dụng FGA) 87
2.3.4.4 Một Số Hạn Chế Của FGA 88
2.3.5 DBA Auditing 88
2.3.5.1 Khởi tạo kiểm toán 88
2.3.5.2 Xem kiểm toán 89
Chương 3 90
3.1 KỊCH BẢN DEMO 91
3.2 QUY MÔ DEMO 94
3.3 KẾT QUẢ ĐẠT ĐƯỢC 102
Chương 4 102
4.1 KẾT QUẢ ĐẠT ĐƯỢC 102
4.2 HẠN CHẾ 103
4.3 HƯỚNG PHÁT TRIỂN .103
4.4 ĐỀ XUẤT 103
Trang 9DANH MỤC CÁC BẢNG
Trang
MỤC LỤC 1
Operating System 4
DANH MỤC CÁC HÌNH VẼ 5
DANH MỤC CÁC BẢNG 9
LỜI MỞ ĐẦU 12
Chương 1 14
1.1 ƯU ĐIỂM CỦA ORACLE 14
1.2 TÍNH NĂNG CẢI TIẾN CỦA ORACLE 10G (ORACLE 10 GRID COMPUTING) 15
1.2.1 Oracle Database 10g 17
1.2.2 Oracle Application Server 10g 17
1.2.3 Oracle Enterprise Manager 10g 18
1.2.4 Cải tiến an ninh cơ sở dữ liệu riêng ảo (VPD) Oracle 10g 19
1.3 KIẾN TRÚC ORACLE SERVER 22
1.3.1 Oracle Instance 23
1.3.1.8 System Monitor (SMON) 29
1.3.1.9 Process Monitor (PMON) 29
1.3.1.10 Checkpoint Process (CKPT) 29
1.3.2 Oracle database 30
Trang 101.4 QUẢN TRỊ CSDL VỚI ORACLE ENTERPRISE MANAGER
(OEM) 36
1.4.1 Khởi động OEM trên server 37
1.4.2 Làm việc với OEM 37
1.4.3 Các chức năng chính của OEM 39
1.5 KẾT NỐI TỚI ORACLE SERVER 40
1.5.1 Mô hình kết nối 40
1.5.2 Một số khái niệm cơ bản liên quan đến kết nối 41
1.5.2.1 Connection (liên kết) 41
1.5.2.2 Session (phiên) 41
1.6 BẢO MẬT TRONG ORACLE 41
1.6.1 Trình tự kiện toàn an ninh Oracle Database 10g .42
1.6.2 Bảo mật cơ sở dữ liệu 43
1.6.2.1 Hạn chế truy cập đến dữ liệu và dịch vụ 43
1.6.2.2 Chứng thực người dùng 43
1.6.2.3 Giám sát cho Hành vi Đáng ngờ 44
1.6.3 Nguyên lý đặc quyền tối thiểu 44
1.6.3.1 Các nguyên lý đặc quyền tối thiểu 45
1.6.3.2 Áp dụng các nguyên tắc đặc quyền tối thiểu 45
Chương 2 46
2.1 TẠI SAO PHẢI KIỂM TOÁN 46
2.1.1 Các hiểm hoạ đối với an toàn cơ sở dữ liệu 46
2.1.2 Các yêu cầu bảo vệ cơ sở dữ liệu 49
2.1.3 Vai trò của kiểm toán trong việc bảo vệ cơ sở dữ liệu 50
Trang 112.2 TỔNG QUAN VỀ KIỂM TOÁN 50
2.2.1 Định nghĩa kiểm toán 50
2.2.2 Các loại đường mòn (Trail) và bản ghi (Record) 51
2.2.2.1 Database Audit Trail (DBA_AUDIT_TRAIL) 54
2.2.2.2 Operating System Audit Trail 55
2.2.2.3 Syslog Audit Trail 58
2.2.2.4 Operating System and Syslog Audit Records 59
2.2.2.5 Các bản ghi luôn có trong Operating System and Syslog Audit Trail 59
2.2.3 Duy trì đường mòn kiểm toán (Maintaining the Audit Trail) 60
2.3 CÁC LOẠI KIỂM TOÁN 61
2.3.1 Mandatory Auditing 62
2.3.2 Standard Database Auditing 63
2.3.2.1 Các bước kiểm toán 64
2.3.2.2 Trang Enterprise Manager Audit 75
2.3.2.3 Sử dụng và duy trì thông tin kiểm toán 76
2.3.3 Value-Based Auditing 76
2.3.4 Fine-Grained Auditing 79
2.3.4.1 Các tính năng vượt trội của kiểm toán FGA 79
2.3.4.2 Các thủ tục trong gói DBMS_FGA 82
2.3.4.3 FGA Guidelines (Hướng dẫn sử dụng FGA) 87
2.3.4.4 Một Số Hạn Chế Của FGA 88
2.3.5 DBA Auditing 88
2.3.5.1 Khởi tạo kiểm toán 88
Trang 122.3.5.2 Xem kiểm toán 89
Chương 3 90
3.1 KỊCH BẢN DEMO 91
3.2 QUY MÔ DEMO 94
3.3 KẾT QUẢ ĐẠT ĐƯỢC 102
Chương 4 102
4.1 KẾT QUẢ ĐẠT ĐƯỢC 102
4.2 HẠN CHẾ 103
4.3 HƯỚNG PHÁT TRIỂN .103
4.4 ĐỀ XUẤT 103
LỜI MỞ ĐẦU
Sự phát triển lớn mạnh của công nghệ thông tin trong những năm qua đã dẫn đến sử dụng rộng rãi hệ thống máy tính trong mọi tổ chức cá nhân và công cộng, chẳng hạn như ngân hàng, trường học, tổ chức dịch vụ và sản
Trang 13xuất.Vì vậy, dữ liệu được lưu giữ và quản lý trong các hệ thống máy tính nhiều hơn Cơ sở dữ liệu sử dụng các hệ quản trị cơ sở dữ liệu đã đáp ứng được các yêu cầu về lưu giữ và quản lý dữ liệu.Vấn đề bảo mật cơ sở dữ liệu càng trở nên cấp thiêt.Giám sát và kiểm toán đã trở thành một phần không thể thiếu trong lĩnh vực bảo mật cơ sở dữ liệu và với hệ quản trị cơ sở dữ liệu Oracle cũng vậy
Trong xu thế hiện nay Oracle đang ngày càng chiếm lĩnh được thị trường nhờ những ưu điểm nổi bật cả về quản trị và bảo mật dữ liệu Kiểm toán trong hệ quản trị Oracle là một đề tài hấp dẫn trong lĩnh vực bảo mật Thấy được tầm quan trọng của việc kiểm toán đối với việc bảo vệ cơ sở dữ liệu, được sự phân công của học viện và sự hướng dẫn nhiệt tình và chu đáo của Ks.Trần Thị Lượng em đã tìm hiểu và nghiên cứu đề tài: “Kiểm Toán Trong Oracle 10g” Đề tài yêu cầu tập trung tìm hiểu và sử dụng kiểm toán trong Oracle 10g, Oracle 10g là một phiên bản mới với nhiều tính năng vượt trội của hệ quản trị cơ sở dữ liệu Oracle
Bố cục đồ án bao gồm bốn chương :
Chương 1: Tổng quan về Oracle 10g
Chương 2: Kiểm toán trong Oracle 10g
Chương 3: Demo Chèn Mã SQL, PL/SQL Nâng Quyền DBA Với
DBMS_EXPORT_EXTENSION Trong ORACLE 10g
Chương 4: Kết luận.
Do kinh nghiệm chưa nhiều nên đề tài không tránh khỏi những thiếu sót,
sơ xuất, nên em rất mong nhận được những nhận xét đánh giá của các thầy cô
và sự đóng góp ý kiến của các ta để có thể rút ra được kinh nghiệm cho việc học tập, làm việc và nghiên cứu sau này Em xin chân thành cảm ơn Cử nhân Trần Thị Lượng, các thầy cô giáo trong khoa An Toàn Thông Tin Học Viện
Kỹ Thuật Mật Mã đã nhiệt tình hướng dẫn giúp đỡ em hoàn thành đồ án này
Sinh viên thực hiện
Cao Thị Hồng Thúy
Trang 14Chương 1 TỔNG QUAN VỀ ORACLE 10G
1.1 ƯU ĐIỂM CỦA ORACLE
Oracle không chỉ nhắm tới những doanh nghiệp lớn mà còn nhắm tới những doanh nghiệp trung bình và cho cả những doanh nghiệp nhỏ.Cụ thể là
Trang 15Oracle Server có đủ các phiên bản thương mại từ Personal, Standard đến Enterprise (ngoài ra còn có Oracle lite).
Về phía các doanh nghiệp: Oracle tỏ ra rất có ưu điểm như tính bảo mật cao, tính an toàn dữ liệu cao, dễ dàng bảo trì-nâng cấp, cơ chế quyền hạn rỏ ràng, ổn định,
Oracle cũng không quá đắt, nếu doanh nghiệp đã từng mua lisence của MSSQLServer thì sẽ thấy giá của Oracle cũng không chênh lệch là bao thậm chí còn rẻ hơn, nhưng lợi ích có được lại rất lớn
Về phía những nhà phát triển: Oracle cũng tỏ ra rất có ưu điểm như dễ cài đặt, dễ triển khai và dễ nâng cấp lên phiên bản mới Hơn nữa Oracle còn tích hợp thêm PL/SQL, là một ngôn ngữ lập trình có cấu trúc - Structure Language Tạo thuận lợi cho các lập trình viên viết các Trigger, StoreProcedure, Package Đây là điểm rất mạnh so với các CSDL hiện có trên thị trường
Oracle, ngoài các kiểu dữ liệu thông thường còn có các kiểu dữ liệu đặc biệt khác góp phần mang lại sức mạnh cho Oracle như Blob, clob, Bfile, Nếu ta chỉ chạy thử, ta cũng không cần lo đến vấn đề lisence vì có thể download từ trang của Oracle (technet.oracle.com)
Ngoài ra, ta có thể triển khai Oracle trên nhiều OS khác nhau (Windows, Solaris, Linux, ) mà không cần phải viết lại PL/SQL code Có thể import một dumpFile (backupFile) từ một máy chạy OS này sang OS khác hoặc từ một version thấp lên một version cao hơn mà không gặp bất cứ trở ngại nào ! (việc ngược lại cũng có thể thực hiện được nếu như ta không xài các tính năng mới so với version trước đó)
1.2 TÍNH NĂNG CẢI TIẾN CỦA ORACLE 10G (ORACLE 10
Trang 16 Khả năng mở rộng của các sở để doanh nghiệp các trang web thương mại điện tử
Mạnh mẽ, đáng tin cậy, có sẵn, và kiến trúc an toàn
Một mô hình phát triển lựa chọn triển khai dễ dàng
Tận dụng skillset hiện hành của một tổ chức trong suốt nền tảng Oracle (bao gồm cả SQL,PL / SQL, Java, và XML)
Một giao diện quản lý cho tất cả các ứng dụng
Tiêu chuẩn công nghiệp công nghệ , không có độc quyền trong khóa
Hình 1.1: Cấu hình Oracle 10gNgheĐọc ngữ âm
Ngoài việc cung cấp những lợi ích được liệt kê ở trên, việc phát hành Oracle10g chứa các cơ sở dữ liệu lưới điện Lưới điện toán có thể làm giảm đáng kể chi phí của máy tính, mở rộng sự sẵn có của tài nguyên máy tính, và cung cấp năng suất cao hơn và chất lượng
Ý tưởng cơ bản của tính toán lưới là khái niệm về máy tính như là một tiện ích, tương tự như điện mạng lưới hoặc mạng điện thoại Là một khách hàng của lưới điện, ta không quan tâm, nơi dữ liệu hoặc khi tính toán được thực hiện Muốn có tính toán thực hiện và thông tin gửi đến khi muốn nó Từ phía máy chủ, mạng lưới là về ảo hóa và cung cấp Tập hợp tất cả các nguồn tài nguyên với nhau và cung cấp các tài nguyên này dựa trên nhu cầu của doanh nghiệp, do đó đạt được sử dụng nguồn lực tốt hơn ở cùng thời gian
Trang 17Sản phẩm ba lưới cơ sở hạ tầng (The three grid-infrastructure) của việc phát hành Oracle10g là:
Oracle Database 10g
Oracle Application Server 10g
Oracle Enterprise Manager 10g Grid Control
Và cải tiến về cơ sở dữ liệu đã tạo ra bước đột phá cho Oracle 10g
Oracle Database 10g quản lý tất cả dữ liệu Đây không chỉ là các đối tượng dữ liệu quan hệ mong đợi một cơ sở dữ liệu doanh nghiệp để quản lý
Nó cũng có thể quản lý được dữ liệu phi cấu trúc như:
• Bảng tính
• Các tài liệu Word
• Bài thuyết trình PowerPoint
1.2.2 Oracle Application Server 10g
Trang 18Oracle Application Server 10g cung cấp một nền tảng cơ sở hạ tầng hoàn chỉnh cho việc phát triển và triển khai các ứng dụng doanh nghiệp, tích hợp nhiều chức năng bao gồm một J2EE và các dịch vụ Web thời gian chạy môi trường, một cổng thông tin doanh nghiệp, một hội nhập doanh nghiệp môi giới, kinh doanh thông minh, bộ nhớ đệm Web và các dịch vụ quản lý danh tính.
Oracle Application Server 10g thêm các tính năng mạng lưới điện toán mới, xây dựng trên sự thành công củaOracle9i Application Server, trong đó
có hàng trăm khách hàng chạy doanh nghiệp sản xuất ứng dụng
Oracle Application Server 10g là các máy chủ ứng dụng bao gồm các dịch vụ cho tất cả các máy chủ ứng dụng khác nhau có thể muốn chạy, bao gồm:
• Cổng thông tin hoặc những trang web
• Giao dịch các ứng dụng Java
• Kinh doanh các ứng dụng thông minh
Nó cũng cung cấp tích hợp giữa các người sử dụng, ứng dụng, và số liệu trong các tổ chức
1.2.3 Oracle Enterprise Manager 10g
Trang 191.2.3.1 Cung cấp phần mềm
Với Grid Control, Oracle 10g tự động cài đặt, cấu hình, và nhân bản của ứng dụng Server 10g và Database 10g trên các nút bội Oracle Enterprise Manager cung cấp một khuôn khổ chung cho cung cấp phần mềm và quản lý, cho phép các quản trị viên tạo, cấu hình, triển khai và sử dụng các máy chủ mới với các trường hợp mới của các máy chủ ứng dụng và cơ sở dữ liệu khi cần thiết
1.2.3.2 Mức độ Dịch vụ ứng dụng Giám sát
Oracle Grid Control quan điểm sẵn có và hiệu suất của các cơ sở hạ tầng lưới điện như là một thể thống nhất, chứ không phải là đơn vị lưu trữ bị cô lập, xử lý ô,cơ sở dữ liệu, và máy chủ ứng dụng
1.2.4 Cải tiến an ninh cơ sở dữ liệu riêng ảo (VPD) Oracle 10g
1.2.4.1 Chính sách mức cột VPD
Trong CSDL riêng ảo truyền thống chính sách VPD được áp dụng cho toàn bộ các hàng Theo mặc định, một chính sách mức-cột VPD cho phép hạn chế các hàng cột hiển thị trừ các cột được chỉ định là truy cập.Sau đây là code ví dụ:Tạo hàm chính sách để hạn chế truy cập vào các cột SAL và COMM
CONN sys/password@db10g AS SYSDBA
GRANT EXECUTE ON dbms_rls TO scott;
Trang 20SELECT empno, ename, job FROM emp;
EMPNO ENAME JOB
Các hàng bị hạn chế nếu SAL or COMM được tham chiếu.
SELECT empno, ename, job, sal, comm FROM emp;
EMPNO ENAME JOB SAL COMM
Cột che giấu các thao tác được thực hiện bằng cách sử dụng tham số
“sec_relevant_cols_opt => DBMS_RLS.ALL_ROWS” Điều này cho phép hiển thị tất cả các hàng, nhưng giấu đi giá trị của các cột được chỉ định cho các hàng bị hạn chế:
Sử dụng cùng một hàm chính sách như trước đây.
BEGIN
DBMS_RLS.ADD_POLICY (object_schema => 'scott',
object_name => 'emp',
Trang 21Tất cả các hàng được trả lại nhưng giá trị của SAL và COMM là duy nhất
Chỉ ra nhân viên trong bộ phận 20.
SELECT empno, ename, job, sal, comm FROM emp;
EMPNO ENAME JOB SAL COMM
Việc sử dụng đúng các loại chính sách có thể tăng hiệu suất của VPD bởi
bộ nhớ đệm đầu ra của các hàm chính sách và áp dụng nó cho các truy vấn tiếp theo mà không cần thực hiện các hàm chính sách này một lần nữa Các tham số POLICY_TYPE của thủ tục DBMS_RLS.ADD_POLICY được sử dụng để thiết lập một trong năm chính sách:
Trang 22• STATIC - Giá trị trả về của hàm chính sách được lưu trữ và sử dụng lại nhiều lần cho một đối tượng cá nhân Theo định nghĩa giá trị trả về của hàm chính sách phải được cố định.
• SHARED_STATIC - Giống như STATIC nhưng các thuộc tính của kết quả có thể được áp dụng cho một số đối tượng
• CONTEXT_SENSITIVE – Được sử dụng khi chính sách dựa trên bối cảnh ứng dụng cục bộ Kết quả của hàm chính sách được lưu trữ và tái sử dụng Hàm chính sách này chỉ thực hiện một lần nữa khi những bối cảnh ứng dụng thay đổi
CONTEXT_SENSITIVE nhưng các thuộc tính của kết quả có thể được áp dụng cho một số đối tượng
• DYNAMIC- Hàm chính sách được thực thi cho mỗi câu lệnh SQL
sec_relevant_cols_opt => DBMS_RLS.ALL_ROWS); END;
/
1.2.4.4 Bối cảnh ứng dụng hỗ trợ cho các truy vấn song song
Khi SYS_CONTEXT được gọi từ một chức năng trong một truy vấn SQL song song thì giá trị của bối cảnh được thông qua tới tất cả các máy chủ thẹc hiện song song (các quá trình truy vấn nô lệ) cho phép truy vấn để hoạt động chúng
1.3 KIẾN TRÚC ORACLE SERVER.
Oracle server là một hệ thống quản trị cơ sở dữ liệu đối tượng-quan hệ cho phép quản lý thông tin một cách toàn diện Oracle server bao gồm hai
Trang 23Hình 1.2 Kiến trúc Oracle Server
System Global Area - SGA
SGA là vùng bộ nhớ chia sẻ được sử dụng để lưu trữ dữ liệu và các thông tin điều khiển của Oracle server SGA được cấp phát (allocated) trong
bộ nhớ của máy tính mà Oracle server đang hoạt động trên đó Các User kết nối tới Oracle sẽ chia sẻ các dữ liệu có trong SGA, việc mở rộng không gian
bộ nhớ cho SGA sẽ làm nâng cao hiệu suất của hệ thống, lưu trữ được nhiều
dữ liệu trong hệ thống hơn đồng thời giảm thiểu các thao tác truy xuất đĩa (disk I/O)
SGA bao gồm một vài cấu trúc bộ nhớ chính:
• Shared pool: Là một phần của SGA lưu các cấu trúc bộ nhớ chia sẻ
• Database buffer cache: Lưu trữ các dữ liệu được sử dụng gần nhất
• Redo log buffer: Được sử dụng cho việc dò tìm lại các thay đồi trong cơ sở dữ liệu và được thực hiện bởi các background process
Trang 24Hinh 1.3: Cấu trúc của SGA.
1.3.1.1 Share Pool.
Shared pool là một phần trong SGA và được sử dụng khi thực hiện phân tích câu lệnh (parse phase) Kích thước của Shared pool được xác định bởi tham số SHARED_POOL_SIZE có trong parameter file (file tham số)
Các thành phần của Shared pool gồm có: Library cache và Data dictionary cache
Hình 1.4 Cấu trúc Share Pool 1.3.1.2 Library Cache.
Library cache lưu trữ thông tin về các câu lệnh SQL được sử dụng gần nhất bao gồm:
• Nội dung của câu lệnh dạng text (văn bản)
Trang 25• Parse tree (cây phân tích) được xây dựng tuỳ thuộc vào câu lệnh.
• Execution plan (sơ đồ thực hiện lệnh) gồm các bước thực hiện và tối ưu lệnh
Do các thông tin trên đã được lưu trữ trong Library cache nên khi thực hiện lại một câu lệnh truy vấn, trước khi thực hiện câu lệnh, Server process sẽ lấy lại các thông tin đã được phân tích mà không phải phân tích lại câu lệnh
Do vậy, Library cache có thể giúp nâng cao hiệu suất thực hiện lệnh
1.3.1.3 Data Dictionary Cache.
Data dictionary cache là một thành phần của Shared pool lưu trữ thông tin của dictionary cache được sử dụng gần nhất như các định nghĩa các bảng, định nghĩa các cột, usernames, passwords, và các privileges (quyền)
Trong giai đoạn phân tích lệnh (parse phase), Server process sẽ tìm các thông tin trong dictionary cache để xác định các đối tượng trong câu lệnh SQL và để xác định các mức quyền tương ứng Trong trường hợp cần thiết, Server process có thể khởi tạo và nạp các thông tin từ các file dữ liệu
1.3.1.4 Data buffer cache.
Khi thực hiện một truy vấn, Server process sẽ tìm các blocks cần thiết trong database buffer cache Nếu không tìm thấy block trong database buffer cache, Server process mới đọc các block từ data file và tạo luôn một bản sao của block đó vào trong vùng nhớ đệm (buffer cache) Như vậy, với các lần truy xuất tới block đó sau này sẽ không cần thiết phải truy xuất vào datafile nữa
Hình 1.5 Database buffer cache
Database buffer cache là vùng nhớ trong SGA sử dụng để lưu trữ các block dữ liệu được sử dụng gần nhất Tương tự như kích thước của blocks dữ
Trang 26liệu được xác định bởi tham số DB_BLOCK_SIZE, kích thước của vùng đệm trong buffer cache cũng được xác định bởi tham số DB_BLOCK_BUFFERS Oracle server sử dụng giải thuật least recently used (LRU) algorithm để làm tươi lại vùng nhớ Theo đó, khi nạp mới một block vào bộ đệm, trong trường hợp bộ đệm đã đầy, Oracle server sẽ loại bớt block ít được sử dụng nhất ra khỏi bộ đệm để nạp block mới vào bộ đệm.
1.3.1.5 Redo log buffer.
Server process ghi lại các thay đổi của một instance vào redo log buffer, đây cũng là một phần bộ nhớ SGA
Hình 1.6 Redo log buffer
Có một số đặc điểm cần quan tâm của Redo log buffer:
• Kích thước được xác định bởi tham số LOG_BUFFER
• Lưu trữ các redo records (bản ghi hồi phục) mỗi khi có thay đổi
dữ liệu
• Redo log buffer được sử dụng một cách thường xuyên và các thay đổi bởi một transaction có thể nằm đan xen với các thay đổi của các transactions khác
• Bộ đệm được tổ chức theo kiểu circular buffer (bộ đệm nối vòng) tức là dữ liệu thay đổi sẽ tiếp tục được nạp lên đầu sau khi vùng đệm đã được sử dụng hết
Background process
Background process (các tiến trình nền) thực hiện các chức năng thay cho lời gọi tiến trình xử lý tương ứng Nó điều khiển vào ra, cung cấp các cơ
Trang 27chế xử lý song song nâng cao hiệu quả và độ tin cậy Tùy theo từng cấu hình
mà Oracle instance có các Background process như:
• Database Writer (DBW0): Ghi lại các thay đổi trong data buffer cache ra các file dữ liệu
• Log Writer (LGWR): Ghi lại các thay đổi được đăng ký trong redo log buffer vào các redo log files
• System Monitor (SMON): Kiểm tra sự nhất quán trong database
• Process Monitor (PMON): Dọn dẹp lại tài nguyên khi các tiến trình của Oracle gặp lỗi
• Checkpoint Process (CKPT): Cập nhật lại trạng thái của thông tin trong file điều khiển và file dữ liệu mỗi khi có thay đổi trong buffer cache
1.3.1.6 Database Writer (DBW0).
Server process ghi lại các dữ liệu thay đổi để rollback và dữ liệu của các block trong buffer cache Database writer (DBWR) ghi các thông tin được đánh dấu thay đổi từ database buffer cache lên các data files nhằm đảm bảo luôn có khoảng trống bộ đệm cần thiết cho việc sử dụng
Hình 1.7 Database Writer (DBWR)
Trang 28Với việc sử dụng này, hiệu suất sử dụng database sẽ được cải thiện do Server processes chỉ tạo các thay đổi trên buffer cache, DBWR ghi dữ liệu vào các data file cho tới khi:
• Số lượng buffers đánh bị dấu đạt tới giá trị ngưỡng
• Tiến trình duyệt tất cả buffer mà vẫn không tìm thấy dữ liệu tương ứng
• Quá thời gian quy định
1.3.1.7 Log Writer.
Log Writer (LGWR) là một trong các background process có trách nhiệm quản lý redo log buffer để ghi lại các thông tin trong Redo log buffer vào Redo log file Redo log buffer là bộ đệm dữ liệu được tổ chức theo kiểu nối vòng
Hình 1.8: Log Writer (LGWT)
LGWR ghi lại dữ liệu một cách tuần tự vào redo log file theo các tình huống sau:
• Khi redo log buffer đầy
• Khi xảy ra timeout (thông thường là 3 giây)
Trang 29• Trước khi DBWR ghi lại các blocks bị thay đổi trong data buffer cache vào các data files.
• Khi commit một transaction
1.3.1.8 System Monitor (SMON).
Tiến trình system monitor (SMON) thực hiện phục hồi các sự cố (crash
recovery) ngay tại thời điểm instance được khởi động (startup), nếu cần thiết SMON cũng có trách nhiệm dọn dẹp các temporary segments không còn được
sử dụng nữa trong dictionary-managed tablespaces SMON khôi phục lại các transactions bị chết mỗi khi xảy ra sự cố SMON đều đặn thực hiện kiểm tra
và khắc phục các sự cố khi cần
Trong môi trường Oracle Parallel Server, SMON process của một instance có thể thực hiện khôi phục instance trong trường hợp instance hay CPU của máy tính đó gặp sự cố
1.3.1.9 Process Monitor (PMON).
Tiến trình process monitor (PMON) thực hiện tiến trình phục hồi mỗi khi
có một user process gặp lỗi PMON có trách nhiệm dọn dẹp database buffer cache và giải phóng tài nguyên mà user process đó sử dụng Ví dụ, nó thiết lập lại (reset) trạng thái của các bảng đang thực hiện trong transaction, giải phóng các locks trên bảng này, và huỷ bỏ process ID của nó ra khỏi danh sách các active processes
PMON kiểm tra trạng thái của nơi gửi (dispatcher ) và các server processes, khởi động lại (restarts) mỗi khi xảy ra sự cố PMON cũng còn thực hiện việc đăng ký các thông tin về instance và dispatcher processes với network listener
Tương tự như SMON, PMON được gọi đến mỗi khi xảy ra sự cố trong hệ thống
1.3.1.10 Checkpoint Process (CKPT).
Cập nhật lại trạng thái của thông tin trong file điều khiển và file dữ liệu mỗi khi có thay đổi trong buffer cache Xảy ra checkpoints khi:
Trang 30• Tất cả các dữ liệu trong database buffers đã bị thay đổi tính cho đến thời điểm checkpointed sẽ được background process DBWRn ghi lên data files.
• Background process CKPT cập nhật phần headers của các data files và các control files
• Checkpoints có thể xảy ra đối với tất cả các data files trong database hoặc cũng có thể xảy ra với một data files cụ thể
• Checkpoint xảy ra theo các tình huống sau:
• Mỗi khi có log switch
• Khi một shut down một database với các chế độ trừ chế độ abort
• Xảy ra theo như thời gian quy định trong các tham số khởi tạo
LOG_CHECKPOINT_TIMEOUT
• Khi có yêu cầu trực tiếp của quản trị viên
• Thông tin về checkpoint được lưu trữ trong Alert file trong trường hợp các tham số khởi tạo LOG_CHECKPOINTS_TO_ALERT được đặt là TRUE Và ngược lại với giá trị FALSE
1.3.2 Oracle database.
Oracle database là tập hợp các dữ liệu được xem như một đơn vị thành phần (Unit) Database có nhiệm vụ lưu trữ và trả về các thông tin liên quan Database được xem xét dưới hai góc độ cấu trúc logic và cấu trúc vật lý Tuy vậy, hai cấu trúc dữ liệu này vẫn tồn tại tách biệt nhau, việc quản lý dữ liệu theo cấu trúc lưu trữ vật lý không gây ảnh hưởng tới cấu trúc logic
Oracle database được xác định bởi tên một tên duy nhất và được quy định trong tham số DB_NAME của parameter file
Trang 31• Một số tính chất của datafiles:
• Mỗi datafile chỉ có thể được sử dụng trong một database
• Bên cạnh đó, datafiles cũng còn có một số tính chất cho phép tự động mở rộng kích thước mỗi khi database hết chỗ lưu trữ dữ liệu
• Một hay nhiều datafiles tạo nên một đơn vị lưu trữ logic của database gọi là tablespace
• Một datafile chỉ thuộc về một tablespace
Dữ liệu trong một datafile có thể đọc ra và lưu vào vùng nhớ bộ đệm của Oracle Ví dụ: khi một user muốn truy cập dữ liệu trong một table thuộc database Trong trường hợp thông tin yêu cầu không có trong cache memory
Trang 32hiện thời, nó sẽ được đọc trực tiếp từ các datafiles ra và lưu trữ vào trong bộ nhớ
Tuy nhiên, việc bổ sung hay thêm mới dữ liệu vào database không nhất thiết phải ghi ngay vào các datafile Các dữ liệu có thể tạm thời ghi vào bộ nhớ để giảm thiểu việc truy xuất tới bộ nhớ ngoài (ổ đĩa) làm tăng hiệu năng
sử dụng hệ thống Công việc ghi dữ liệu này được thực hiện bởi DBWn
background process
Redo Log Files
Mỗi Oracle database đều có một tập hợp từ 02 redo log files trở lên Các redo log files trong database thường được gọi là database's redo log Một redo log được tạo thành từ nhiều redo entries (gọi là các redo records)
Chức năng chính của redo log là ghi lại tất cả các thay đổi đối với dữ liệu trong database Redo log files được sử dụng để bảo vệ database khỏi những hỏng hóc do sự cố Oracle cho phép sử dụng cùng một lúc nhiều redo log gọi
là multiplexed redo log để cùng lưu trữ các bản sao của redo log trên các ổ đĩa khác nhau
Các thông tin trong redo log file chỉ được sử dụng để khôi phục lại database trong trường hợp hệ thống gặp sự cố và không cho phép viết trực tiếp dữ liệu trong database lên các datafiles trong database Ví dụ: khi có sự
cố xảy ra như mất điện bất chợt chẳng hạn, các dữ liệu trong bộ nhớ không thể ghi trực tiếp lên các datafiles và gây ra hiện tượng mất dữ liệu Tuy nhiên, tất cả các dữ liệu bị mất này đều có thể khôi phục lại ngay khi database được
mở trở lại Việc này có thể thực hiện được thông qua việc sử dụng ngay chính các thông tin mới nhất có trong các redo log files thuộc datafiles Oracle sẽ khôi phục lại các database cho đến thời điểm trước khi xảy ra sự cố
Công việc khôi phục dữ liệu từ các redo log được gọi là rolling forward
Control Files
Mỗi Oracle database đều có ít nhất một control file Control file chứa các mục thông tin quy định cấu trúc vật lý của database như:
• Tên của database
• Tên và nơi lưu trữ các datafiles hay redo log files
Trang 33• Time stamp (mốc thời gian) tạo lập database,
Mỗi khi nào một instance của Oracle database được mở, control file của
nó sẽ được sử dụng để xác định data files và các redo log files đi kèm Khi các thành phần vật lý cả database bị thay đổi (ví dụ như, tạo mới datafile hay redo log file), Control file sẽ được tự động thay đổi tương ứng bởi Oracle Control file cũng được sử dụng đến khi thực hiện khôi phục lại dữ liệu
Cấu trúc logic databse
Cấu trúc logic của Oracle database bao gồm các đối tượng tablespaces, schema objects, data blocks, extents, và segments
Tablespaces
Một database có thể được phân chia về mặt logic thành các đơn vị gọi là các tablespaces, Tablespaces thường bao gồm một nhóm các thành phần có quan hệ logic với nhau
Databases, Tablespaces, và Datafiles
Mối quan hệ giữa các databases, tablespaces, và datafiles có thể được minh hoạ bởi hình vẽ sau:
Hình 1.10: Quan hệ giữa database, tablespace và datafile
Có một số điểm ta cần quan tâm:
• Mỗi database có thể phân chia về mặt logic thành một hay nhiều tablespace
Trang 34• Mỗi tablespace có thể được tạo nên, về mặt vật lý, bởi một hoặc nhiều datafiles
• Kích thước của một tablespace bằng tổng kích thước của các datafiles của nó Ví dụ: trong hình vẽ ở trên SYSTEM tablespace
có kích thước là 2 MB còn USERS tablespace có kích thước là 4 MB
• Kích thước của database cũng có thể xác định được bằng tổng kích thước của các tablespaces của nó Ví dụ: trong hình vẽ trên thì kích thước của database là 6 MB
Hình 1.11: Cấu trúc lưu trữ (Storage) Schema và Schema Objects
Schema là tập hợp các đối tượng (objects) có trong database Schema objects là các cấu trúc logic cho phép tham chiếu trực tiếp tới dữ liệu trong database Schema objects bao gồm các cấu trúc như tables, views, sequences, stored procedures, synonyms, indexes, clusters, và database links
Data Blocks, Extents, and Segments
Oracle điểu khiển không gian lưu trữ trên đĩa cứng theo các cấu trúc logic bao gồm các data blocks, extents, và segments
Oracle Data Blocks
Trang 35Là mức phân cấp logic thấp nhất, các dữ liệu của Oracle database được lưu trữ trong các data blocks Một data block tương ứng với một số lượng nhất định các bytes vật lý của database trong không gian đĩa cứng Kích thước của một data block được chỉ ra cho mỗi Oracle database ngay khi database được tạo lập Database sử dụng, cấp phát và giải phóng vùng không gian lưu trữ thông qua các Oracle data blocks
Extents
Là mức phân chia cao hơn về mặt logic các vùng không gian trong
database Một extent bao gồm một số data blocks liên tiếp nhau, cùng được
lưu trữ tại một thiết bị lưu giữ Extent được sử dụng để lưu trữ các thông tin
có cùng kiểu
Segments
Là mức phân chia cao hơn nữa về mặt logic các vùng không gian trong
database Một segment là một tập hợp các extents được cấp phát cho một cấu
trúc logic Segment có thể được phân chia theo nhiều loại khác nhau:
Data
segment
Mỗi một non-clustered table có một data segment Các dữ liệu trong một table được lưu trữ trong các extents thuộc data segment đó Với một partitioned table thì mỗi each partition lại tương ứng với một data segment
Mỗi Cluster tương ứng với một data segment Dữ liệu của tất
cả các table trong cluster đó đều được lưu trữ trong data segment thuộc Cluster đó
Index
segment
Mỗi một index đều có một index segment lưu trữ các dữ liệu của nó Trong partitioned index thì mỗi partition cũng lại tương ứng với một index segment
Rollback
segment
Một hoặc nhiều rollback segments của database được tạo lập bởi người quản trị database để lưu trữ các dữ liệu trung gian phục vụ cho việc khôi phục dữ liệu
Các thông tin trong Rollback segment được sử dụng để:
• Tạo sự đồng nhất các thông tin đọc được từ database
Trang 36• Sử dụng trong quá trình khôi phục dữ liệu
• Phục hồi lại các giao dịch chưa commit đối với mỗi user
Temporary
segment
Temporary segments được tự động tạo bởi Oracle mỗi khi một câu lệnh SQL statement cần đến một vùng nhớ trung gian để thực hiện các công việc của mình như sắp xếp dữ liệu Khi kết thúc câu lệnh đó, các extent thuộc temporary segment sẽ lại được hoàn trả cho hệ thống
• Password file: Xác định quyền của từng user trong database Cho phép người sử dụng khởi động và tắt một Oracle instance
• Archived redo log files: Là bản off line của các redo log files chứa các thông tin cần thiết để phục hồi dữ liệu
1.4 QUẢN TRỊ CSDL VỚI ORACLE ENTERPRISE MANAGER
(OEM).
OEM là một chương trình ứng dụng cho phép người quản trị CSDL có thể thực hiện các chức năng quản trị CSDL Oracle từ xa Đối với các phiên bản trước 10g, công cụ OEM được viết bằng ứng dụng Java và có thể chạy trên cả Server lẫn Client Tuy nhiên, để có thể quản trị từ máy Client, người
Trang 37dùng cần phải cài Oracle Client – một phần mềm tương đối nặng Vì thế, từ phiên bản 10g trở đi, OEM được viết dưới dạng ứng dụng web mà người dùng có thể truy cập từ máy Client không cần cài đặt thêm Oracle Client
1.4.1 Khởi động OEM trên server.
Để OEM có thể hoạt động, cần phải khởi động chương trình OEM trên Server (thường trực dưới dạng service trong Windows) Người quản trị thực hiện khởi động theo các bước sau :
• Bước 1: Chọn Start Run gõ lệnh cmd
• Bước 2: Khởi động OEM trên Server bằng lệnh emctl start dbconsole
• Bước 3: Đợi chương trình khởi động xong, đóng cửa sổ command lại Kết thúc quá trình khởi động OEM trên Server
1.4.2 Làm việc với OEM.
Mở một trình duyệt web như Internet Explorer, Firefox, Opera… Tại ô địa chỉ, đánh địa chỉ đăng nhập theo cú pháp http://<IP server>:5500/em/
Ví dụ: thông thường Oracle được cài trên máy đơn, truy cập OEM qua địa chỉ http://localhost:5500/em/
Nếu OEM trên server hoạt động tốt và không bị lỗi, xuất hiện màn hình làm việc của chương trình OEM với cửa sổ đăng nhập đầu tiên để bắt đầu làm việc
Trang 38Hình 1.12: Giao diện đăng nhập database oracle.
Mỗi CSDL mặc định khi tạo có các người dùng SYS và SYSTEM, với mật khẩu được thiết lập trong quá trình tạo CSDL Nếu trong trường hợp không thiết lập mật khẩu, các người dùng này có các mật khNu mặc định bao gồm :
• SYS có mật khẩu CHANGE_ON_INSTALL
• SYSTEM có mật khẩu MANAGER
Đối với 2 người dùng này chọn Connect as SYSDBA
Sau khi đăng nhập thành công, xuất hiện màn hình quản lý của Oracle Tại đây người quản trị sẽ bắt đầu làm việc với các chức năng quản trị hệ thống
Trang 39Hình 1.13: Màn hình quản lý oracle.
1.4.3 Các chức năng chính của OEM
• Home: chứa giao diện thông báo trạng thái hoạt động của Database Server và các chức năng chính để khởi động (startup) hoặc dừng hoạt động (shutdown) của Database Server
• Performance: theo dõi năng lực hoạt động của hệ thống thông qua giao diện đồ họa và các biểu đồ
• Administrator: chứa đựng toàn bộ các chức năng để thực hiện việc quản trị và cấu hình hệ thống đối với Oracle Database
• Maintenance: chứa đựng các chức năng vận hành và duy trì hệ thống
Chức năng quan trọng nhất của OEM chính là Administrator, có giao diện như sau:
Trang 40Hình 1.14: Giao diện Administrator
1.5 KẾT NỐI TỚI ORACLE SERVER.
1.5.1 Mô hình kết nối.
Các Client có thể kết nối tới Oracle Server thông qua 03 cách sau:
• Kết nối trực tiếp: kết nối mà Client nằm trên cùng một máy chủ Oracle server
• Kết nối hai lớp (two-tiered) client-server: Client nằm trên một máy tính khác và kết nối trực tiếp tới máy chủ Oracle Server
• Kết nối ba lớp (three-tiered): Client nằm trên máy tính khác với máy chủ Oracle Server, nó giao tiếp với một ứng dụng hay một máy chủ mạng (network server) và điều khiển ứng dụng hay máy chủ này kết nối tới Oracle server