MỤC LỤC DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT III DANH MỤC CÁC BẢNG IV LỜI MỞ ĐẦU V CHƯƠNG 1. GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU RIÊNG ẢO 1 1.1. Giới thiệu về hệ quản trị CSDL Oracle 1 1.2. Giới thiệu chung về VPD 1 a. Các phiên bản VPD 2 b. Lợi ích của VPD 3 CHƯƠNG 2. NGỮ CẢNH ỨNG DỤNG 4 2.1. Giới thiệu về ngữ cảnh ứng dụng 4 2.2. Ngữ cảnh mặc định USERENV 4 2.3. Ngữ cảnh cục bộ (Local Context) 6 a. Tạo một ngữ cảnh ứng dụng 6 b. Thiết lập các thuộc tính và giá trị cho ngữ cảnh ứng dụng 6 c. Áp dụng ngữ cảnh ứng dụng vào bảo mật 7 2.4. Ngữ cảnh toàn cục (Global Context) 7 CHƯƠNG 3. BẢO MẬT MỨC HÀNG VỚI VPD 8 3.1. Giới thiệu về RLS (RowLevel Security) 8 3.2. Tạo Function PLSQL trả về chuỗi String 9 3.3. Tạo chính sách bảo mật áp dụng vào bảng, khung nhìn… 9 3.4. Riêng tư mức cột trong VPD 10 3.5. Xóa Policy RLS 11 3.6. Quyền Exempt Access Policy 11 CHƯƠNG 4. ÁP DỤNG VPD VÀO MỘT CSDL CỤ THỂ 13 4.1. Đặt vấn đề 13 4.2. Giải quyết bài toán 13 a. Tạo schema quản trị VPD 13 b. Tạo ngữ cảnh ứng dụng 14 c. Tạo các chính sách VPD 15 KẾT LUẬN 17 TÀI LIỆU THAM KHẢO 18 DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT Viết tắt Giải thích CNTT Công nghệ thông tin CSDL Cơ sở dữ liệu DML Data Manipulation Language PLSQL Procedural LanguageStructured Query Language RDBMS Relational Database Management System RLS RowLevel Security VPD Virtual Private Database DANH MỤC CÁC BẢNG Bảng 1. Những thuộc tính xác định của USERENV 6 Bảng 2. Bảng nhân viên 13 Bảng 3. Bảng tài khoản 13 Bảng 4. Kiểm tra ngữ cảnh ứng dụng 15 Bảng 5. Các bản ghi xem được với tài khoản nhân viên. 15 Bảng 6. Các bản ghi xem được với tài khoản trưởng phòng lập trình. 16 Bảng 7. Các bản ghi xem được với tài khoản trưởng phòng kế hoạch. 16 Bảng 8. Các bản ghi xem được với tài khoản giám đốc. 16 Bảng 9. Các bản ghi sau khi thực hiện chính sách bảo mật mức cột 16 LỜI MỞ ĐẦU Ngày nay chúng ta đã biết được tầm quan trọng của công nghệ thông tin (CNTT) trong đời sống. Và riêng đối với các công ty, tổ chức thì CSDL là trái tim, là nguồn sống của họ. Sự bùng nổ của Internet đã đánh thức nhu cầu trao đổi và tìm kiếm thông tin trên mạng. Nhu cầu càng cao, sự tìm kiếm thông tin càng mạnh đã khiến cho các công ty, tổ chức lao đao trước bài toán bảo vệ và quản lý dữ liệu. Trước nhu cầu thực tế đó, việc bắt buộc tìm kiếm một giải pháp tối ưu thật là khó đối với các nhà quản lý thông tin nhưng không phải là không có hướng giải quyết. Oracle là một trong những giải pháp mà hầu hết các công ty đã lựa chọn. Dưới sự lựa chọn và tin tưởng của các công ty, tổ chức, Oracle không thể không ngừng nỗ lực phát triển để đáp ứng các nhu cầu của họ. Nhiều giải pháp tiếp tục được đưa ra và VPD là một giải pháp mới dùng để thực thi kiểm soát truy cập dữ liệu tại máy chủ. Dưới sự cần thiết và những tính mới của nó nên nhóm em đã lựa chọn đề tài “Tìm hiểu về cơ sở dữ liệu riêng ảo trong Oracle” cho bài tập lớn môn An toàn cơ sở dữ liệu. Dù cả nhóm đã nỗ lực cố gắng nhưng do thời gian có hạn nên đề tài vẫn còn nhiều thiếu sót. Chúng em mong nhận được sự chỉ bảo cuả thầy cô và các bạn. CHƯƠNG 1. GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU RIÊNG ẢO 1.1. Giới thiệu về hệ quản trị CSDL Oracle Oracle Database hay còn gọi là Oracle RDBMS hoặc đơn giản là Oracle, là 1 hệ quản trị cơ sở dữ liệu quan hệ, được phát triển và phân phối bởi tập đoàn Oracle. Oracle version 1 ra đời từ năm 1978. Sau vài chục năm, hiện tại Oracle Database đã lên đến version 12. Trước kia các version Oracle Database chỉ được đánh số. Bắt đầu từ version 8 trở đi có thêm ký tự phía sau version. Với version 8 và 9 là i (internet). Version 10 và 11 là g (grid). Version 12 mới nhất là c (cloud). Các ký tự thể hiện đặc tính nền tảngkiến trúc của version đó. Không giống như các nhà cung cấp CSDL khác, Oracle xem trọng việc bảo mật và các đặc tính của CSDL để từ đó xây dựng các quan hệ an ninh vào trong hệ thống quản lý CSDL. 1.2. Giới thiệu chung về VPD VPD là tên viết tắt của Virtual Private Database hay còn được gọi là CSDL riêng ảo. VPD cho phép bạn thực hiện bảo mật tới một mức thấp nhất trực tiếp trên các bảng hoặc các khung nhìn. Bởi vì chính sách bảo mật gán trực tiếp vào các bảng, khung nhìn và được tự động áp dụng bất cứ khi nào người dùng truy xuất dữ liệu, không có cách nào để bỏ qua sự kiểm tra này. Khi một người dùng trực tiếp hoặc gián tiếp truy xuất một bảng, khung nhìn đã được bảo vệ bằng một chính sách VPD, máy chủ tự điều chỉnh một cách động câu lệnh SQL của người sử dụng. Sự điều chỉnh này dựa trên điều kiện WHERE (vị từ) được trả lại bởi một chức năng thực hiện chính sách bảo mật. Câu lệnh được điều chỉnh một cách động, trong suốt với người dùng, sử dụng bất kỳ điều kiện có thể được biểu diễn bên trong, hoặc được trả lại bằng một chức năng. Những chính sách VPD có thể được áp dụng cho những câu lệnh SELECT, INSERT, UPDATE, INDEX, và DELETE. Những chức năng mà trả lại những vị từ cũng có thể bao gồm lời gọi đến các chức năng khác. Bên trong gói PLSQL của bạn, bạn có thể nhúng vào C hoặc Java mà có thể truy xuất thông tin hệ điều hành, hoặc trả về những mệnh đề WHERE tùy biến. Một chức năng chính sách có thể trả về những vị từ khác nhau cho từng người dùng, từng nhóm hoặc cho từng ứng dụng. Sử dụng những chức năng chính sách trên từ đồng nghĩa có thể thay thế cho việc duy trì một khung nhìn riêng biệt cho mỗi người dùng hoặc lớp người dùng, sự lưu trữ trên không đáng kể trong bộ nhớ và tài nguyên xử lý. Lấy ví dụ một nhân viên là người mà chỉ được phép thấy các bảng ghi NhanVien trong phòng lập trình. Khi người dùng bắt đầu truy vấn: SELECT FROM NhanVien; Chức năng thực thiện chính sách bảo mật trả về vị từ Phong = ‘Lập trình’ và CSDL viết lại một cách trong suốt truy vấn. Câu truy vấn thực sự được thực hiện trở thành: SELECT FROM NhanVien WHERE Phong = ‘Lập trình’; a. Các phiên bản VPD VPD được bắt đầu sử dụng trong Oracle 8i (phiên bản 8.1.5 ), nó được xem như là một giải pháp mới để thực thi kiểm soát truy cập dữ liệu tại máy chủ. Từ đó đến nay VPD có các phiên bản đi kèm với sự phát triển của Oracle, bao gồm: • Oracle 8i Điều khiển truy cập mức mịn (Finegrained Access Control) Ngữ cảnh ứng dụng (Application Context) Bảo mật mức hàng (Row Level Security) Hỗ trợ cho các bảng và khung nhìn (VPD support for table and view) • Oracle 9i Chính sách quản lý Oracle (Oracle Policy Manager) Điều khiển truy cập mức mịn và sự phân chia (Partitioned finegrained access control) Ngữ cảnh ứng dụng toàn cục (Global application context) Hỗ trợ cho synonyms (VPD support for synonyms) • Oracle 10g Tùy biến. Có thể tùy chỉnh VPD để luôn luôn thực hiện các predicate cùng với một chính sách tĩnh hoặc ta có thể có các predicate VPD thay đổi với các chính sách không tĩnh. Tính riêng tư mức cột. Chính sách chia sẻ cho nhiều đối tượng để giảm thiểu chi phí. • Oracle 11g cung cấp cho người quản lý doanh nghiệp sự tích hợp các chính sách bảo mật mức hàng. b. Lợi ích của VPD VPD cho phép người quản trị gán các chính sách bảo mật lên các bảng, khung nhìn để những người dùng với quyền hạn khác nhau sẽ được truy xuất các bản ghi khác nhau trong bảng, khung nhìn đó. Việc giới hạn này sẽ trong suốt đối với mọi người dùng. Đồng thời chính sách bảo mật đó sẽ được áp dụng cho bất kỳ user nào truy xuất đến bảng, khung nhìn đó mà không cần người quản trị phải gán chính sách cho từng user. VPD mang lại rất nhiều lợi ích trong việc bảo mật CSDL và dưới đây là một số lợi ích mà ta có thể nhận thấy dễ dàng đó là: • Chi phí thấp: Có thể tiết kiệm được một khoản chi phí rất lớn bằng cách xây dựng một hệ thống bảo mật cho máy chủ dữ liệu thay vì phải thực thi các chính bảo mật giống nhau cho mỗi ứng dụng khi có truy cập dữ liệu. • Trong suốt với người dùng: Người dùng có thể truy cập dữ liệu mà không hề biết tới các chính sách bảo mật được áp dụng. Bởi các chính sách bảo mật được đính kèm với CSDL và được thực thi một cách tự động, trong suốt trên máy chủ. • Cơ hội kinh doanh: Trong quá khứ, các công ty không thể cho khách hàng, đối tác truy cập trực tiếp vào CSDL của họ bởi họ chưa có cách nào để làm an toàn dữ liệu của họ. Ngày nay, bằng cách kiểm soát truy cập mức mịn, dữ liệu sẽ được bảo mật trên máy chủ, và việc truy cập dữ liệu sẽ được giới hạn ở mức độ ủy quyền khác nhau.