HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP
Đề tài:
TÌM HIỂU VỀ AN TOÀN DỰA VÀO NHÃN (OLS)
VÀ CƠ SỞ DỮ LIỆU RIÊNG ẢO (VPD)
TRÊN ORACLE
Cán bộ hướng dẫn 1 : ThS. Ninh Thị Thanh Tâm
Cán bộ hướng dẫn 2 : ThS. Trần Thị Lượng
Lớp
: AT5C
HÀ NỘI, 5/2013
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
MỤC LỤC
DANH MỤC BẢNG........................................................................................v
DANH MỤC HÌNH VẼ................................................................................vii
DANH MỤC TỪ VIẾT TẮT..........................................................................x
LỜI NÓI ĐẦU................................................................................................xi
CHƯƠNG I: TỔNG QUAN VỀ ORACLE.................................................13
1.1 Cơ sở dữ liệu và tầm quan trọng của cơ sở dữ liệu...........................13
1.1.1 Định nghĩa cơ sở dữ liệu..................................................................13
1.1.2 Định nghĩa hệ quản trị cơ sở dữ liệu................................................13
1.1.3 Tầm quan trọng của cơ sở dữ liệu....................................................14
1.2 Hệ quản trị cơ sở dữ liệu Oracle.........................................................14
1.2.1 Giới thiệu chung...............................................................................14
1.2.2 Đặc điểm của hệ quản trị cơ sở dữ liệu Oracle................................14
1.2.3 Các cơ chế an toàn trong Oracle......................................................15
CHƯƠNG II: CƠ SỞ DỮ LIỆU RIÊNG ẢO (VPD) TRONG ORACLE
.........................................................................................................................18
2.1 Tổng quan về VPD...............................................................................18
2.1.1 Khái niệm chung về VPD................................................................18
2.1.2 Các ưu điểm của VPD......................................................................19
2.2 Một số ngữ cảnh ứng dụng VPD.........................................................19
2.2.1 Ngữ cảnh mặc định USERENV.......................................................20
2.2.2 Ngữ cảnh cục bộ (Local Context)....................................................21
2.2.3 Ngữ cảnh toàn cục (Global Context)...............................................23
2.3 Các thành phần của chính sách VPD................................................24
2.3.1 Khởi tạo một chức năng để đưa ra các mệnh đề WHERE linh hoạt 24
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
ii
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
2.3.2 Thiết lập chính sách để đính kèm chức năng vào đối tượng cần bảo
vệ...............................................................................................................25
2.4 Cấu hình một chính sách VPD............................................................25
2.4.1 Giới thiệu về chính sách VPD..........................................................25
2.4.2 Gắn một chính sách vào một bảng cơ sở dữ liệu.............................26
2.4.3 Thực thi các chính sách trên mệnh đề cụ thể kiểu SQL...................26
2.4.4 Kiểm soát việc hiển thị các cột dữ liệu với chính sách ...................27
CHƯƠNG III: AN TOÀN DỰA VÀO NHÃN TRONG ORACLE (OLS)
.........................................................................................................................32
3.1 Tổng quan về OLS...............................................................................32
3.1.1 Kiến trúc OLS .................................................................................33
3.1.2 Các tính năng của OLS....................................................................33
3.2 Tìm hiểu về nhãn dữ liệu và nhãn người dùng..................................38
3.2.1 Giới thiệu về an toàn dựa vào nhãn..................................................38
3.2.2 Các thành phần của nhãn.................................................................39
3.2.3 Cú pháp nhãn và các kiểu nhãn........................................................46
3.2.4 Kết hợp nhãn dữ liệu và nhãn người dùng.......................................47
3.2.5 Quản lý nhãn....................................................................................49
3.3 Tìm hiểu về kiểm soát truy cập và các đặc quyền.............................50
3.3.1 Giới thiệu về dàn xếp truy cập:........................................................50
3.3.2 Tìm hiểu về nhãn phiên và nhãn hàng.............................................51
3.3.3 Tìm hiểu về xác thực người dùng....................................................52
3.3.4 Đánh giá việc dàn xếp truy cập........................................................55
3.3.5 Sử dụng đặc quyền OLS..................................................................61
3.3.6 Làm việc với nhiều chính sách OLS................................................68
3.4 So sánh OLS và VPD...........................................................................68
3.5 Sử dụng VPD để thi hành chính sách OLS........................................69
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
iii
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
CHƯƠNG IV: TRIỂN KHAI OLS VÀ VPD TRÊN CƠ SỞ DỮ LIỆU
ORACLE........................................................................................................71
4.1 Mô tả bài toán.......................................................................................71
4.2 Sử dụng OLS và VPD trên bảng cơ sở dữ liệu NHANSU................72
4.2.1 Tạo chính sách OLS.........................................................................73
4.2.2 Định nghĩa các thành phần của nhãn................................................74
4.2.3 Tạo nhãn dữ liệu và gán nhãn dữ liệu cho các hàng........................76
4.2.4 Áp dụng chính sách lên bảng NHANSU..........................................80
4.2.5 Ủy quyền chính sách cho người dùng..............................................81
4.2.6 Sử dụng VPD với chính sách COMPANY để phân quyền trên cột
THUONG trong bảng NHANSU..............................................................89
4.2.6 Kết quả.............................................................................................91
KẾT LUẬN....................................................................................................96
TÀI LIỆU THAM KHẢO............................................................................97
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
iv
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
DANH MỤC BẢNG
Bảng 3.1 Một chính sách OLS kiểm soát truy cập dữ liệu dựa trên 3
thành phần.....................................................................................................38
Bảng 3.2 Thành phần nhãn nhạy cảm.......................................................39
Bảng 3.3 Ví dụ về level .................................................................................40
Bảng 3.4 Các hình thức xác định level.........................................................41
Bảng 3.5 Ví dụ về compartment...................................................................42
Bảng 3.6 Các định dạng của compartment ..............................................42
Bảng 3.7 Ví dụ group....................................................................................44
Bảng 3.8 Các hình thức xác định của các group ......................................45
Bảng 3.9 Các loại level, compartment, và các group theo ngành.............46
Bảng 3.10 Level cho phép theo quy định của quản trị...............................52
Bảng 3.11 Ví dụ, trong Oracle Enterprise Manager, người quản trị có
thể thiết lập mức ủy quyền sau đây cho người dùng ABC........................53
Bảng 3.12 Ví dụ, trong Oracle Enterprise Manager, người quản trị có thể
thiết lập ủy quyền thành phần sau đây cho người dùng Joe....................53
Bảng 3.13 Các thiết lập khi tạo group trong Oracle Enterprise Manager
.........................................................................................................................54
Bảng 3.14 Tính toán nhãn phiên .................................................................55
Bảng 3.15 Đặc quyền OLS............................................................................62
Bảng 3.16 Các loại đặc quyền ....................................................................65
Bảng 3.17 So sánh OLS và VPD...................................................................69
Bảng 4.1 Các trường trong bảng cơ sở dữ liệu nhân sự công ty Sao Việt72
Bảng 4.2 Bảng cơ sở dữ liệu nhân sự công ty Sao Việt .............................72
Bảng 4.3 Mô tả các nhãn dữ liệu cần tạo.....................................................76
Bảng 4.4 Người dùng và nhãn tương ứng...................................................84
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
v
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
vi
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
DANH MỤC HÌNH VẼ
Hình 2.1 Ngữ cảnh ứng dụng lưu trữ thông tin..........................................20
Hình 2.2 Ứng dụng của ngữ cảnh toàn cục trong việc kết hợp ngữ cảnh
và kiểm soát dữ liệu trong môi trường bảo mật........................................23
Hình 3.1 Kiến trúc OLS................................................................................33
Hình 3.2 An toàn dựa vào nhãn...................................................................34
Hình 3.3 Phân loại dữ liệu với level, compartment và group....................40
Hình 3.4 Ma trận nhãn.................................................................................43
Hình 3.5 Ví dụ group.....................................................................................43
Hình 3.6 Ví dụ về Nhãn dữ liệu và nhãn người dùng.................................48
Hình 3.7 Tương tác giữa các Compartment trong nhãn..........................49
Hình 3.8 Mối quan hệ giữa người dùng, dữ liệu, và nhãn.........................50
Hình 3.9 Thiết lập cấp được ủy quyền trong quản lý doanh nghiệp......53
Hình 3.10 Thiết lập thành phần ủy quyền trong quản lý doanh nghiệp. 54
Hình 3.11 Thiết lập group ủy quyền trong quản lý doanh nghiệp............54
Hình 3.12 Thừa kế phân nhóm truy cập đọc / ghi......................................57
Hình 3.13 Quá trình đánh giá cho truy cập đọc của nhãn........................58
Hình 3.14 Quá trình đánh giá truy cập ghi của nhãn................................60
Hình 3.15 Quá trình đánh giá nhãn cho truy cập đọc với đặc quyền
COMPACCESS.............................................................................................63
Hình 3.16 Quy trình đánh giá nhãn cho truy cập ghi với đặc quyền
COMPACCESS.............................................................................................63
Hình 4.1 Giao diện tạo chính sách OLS khi login bằng user LBACSYS. 74
Hình 4.2 Tạo chính sách COMPANY với cột rowlabel chứa nhãn trong
bảng................................................................................................................74
Hình 4.3 Định nghĩa các level tương ứng với chức vụ của nhân viên.......75
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
vii
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
Hình 4.4 Các thành phần của compartment...............................................75
Hình 4.5 Các thành phần của ba group......................................................75
Hình 4.6 Giao diện tạo nhãn dữ liệu, nhấn Add để tạo nhãn mới............77
Hình 4.7 Các thông tin cần thiết để tạo nhãn: Numeric Tag, Level,
Compartments, Groups................................................................................77
Hình 4.8 Chọn level tương ứng cho nhãn....................................................77
Hình 4.9 Chọn Compartments.....................................................................77
Hình 4.10 Chọn Group..................................................................................78
Hình 4.11 Điền Numeric Tag. Nhấn OK để hoàn tất việc tạo nhãn dữ liệu
.........................................................................................................................78
Hình 4.12 Lặp lại quá trình để tạo tất cả nhãn cần thiết...........................78
Hình 4.13 Áp dụng chính sách lên bảng......................................................80
Hình 4.14 Chọn bảng NHANSU...................................................................80
Hình 4.15 Tùy chọn áp dụng chính sách lên bảng và không ẩn cột chính
sách.................................................................................................................81
Hình 4.16 Áp dụng thành công chính sách lên bảng NHANSU................81
Hình 4.17 Tạo người dùng cơ sở dữ liệu.....................................................82
Hình 4.18 Cấp quyền trên bảng NHANSU cho Giám đốc. Giám đốc sẽ có
quyền Đọc, ghi, sửa, xóa trên bảng..............................................................82
Hình 4.19 Cấp quyền trên bảng NHANSU cho Trưởng phòng. Trưởng
phòng sẽ có quyền Đọc, ghi, sửa trên bảng.................................................83
Hình 4.20 Cấp quyền trên bảng NHANSU cho Nhân viên. Nhân viên sẽ
có quyền Đọc trên bảng................................................................................83
Hình 4.21 Chính sách COMPANY hiện chưa được ủy quyền cho người
dùng................................................................................................................84
Hình 4.22 Chọn người dùng để ủy quyền chính sách................................84
Hình 4.23 Hoàn thành chọn người dùng. Bước này có thể chọn nhiều
người dùng cùng lúc để ủy quyền................................................................85
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
viii
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
Hình 4.24 Cấu hình các thành phần............................................................85
Hình 4.25 Chọn level.....................................................................................86
Hình 4.26 Chọn compartment......................................................................86
Hình 4.27 Chọn group...................................................................................86
Hình 4.28 Hoàn tất chọn bốn level và compartment, group cho user......87
Hình 4.29 Chọn đặc quyền cho người dung................................................87
Hình 4.30 Cấu hình tính năng kiểm toán....................................................88
Hình 4.31 Kiểm tra lại các thiết lập, kết thúc quy trình ủy quyền...........88
Hình 4.32 Lặp lại quá trình đối với tất cả các user cần thiết....................89
Hình 4.33 Select toàn bảng NHANSU bằng user ledinhchinh (Tổng giám
đốc)..................................................................................................................92
Hình 4.34 Select toàn bảng NHANSU bằng user lyminhnhat (Nhân viên
phòng Kế hoạch chi nhánh Phía Nam)........................................................92
Hình 4.35 Khi chưa đăng nhập....................................................................93
Hình 4.36 Đăng nhập bằng user ledinhchinh (Tổng giám đốc)................93
Hình 4.37 Đăng nhập bằng user hoanhkhoa (Giám đốc chi nhánh phía
Bắc..................................................................................................................94
Hình 4.38 Đăng nhập bằng user ngothihoa (trưởng phòng Kế hoạch chi
nhánh phía Nam)...........................................................................................94
Hình 4.39 Đăng nhập bằng user duongvanla (nhân viên phòng Kế hoạch
chi nhánh Phía Nam).....................................................................................95
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
ix
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
DANH MỤC TỪ VIẾT TẮT
DML
OLS
VPD
Ngôn ngữ thao tác dữ liệu
An toàn dựa vào nhãn trong Oracle
Cơ sở dữ liệu riêng ảo
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
x
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
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 nên một nghề mới, đó là
nghề quản trị hệ thống cơ sở dữ liệu, thường gọi là DBA (Database
Administrator). Hiện nay chúng ta có thể đánh giá Oracle là hệ quản trị cơ sở
dữ liệu được các doanh nghiệp ứng dụng nhiều nhất trên thế giới.
Đố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 cho nên 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ị 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 được giữ bí mật
và nguyên vẹn ngay khi được lưu trên đĩa cứng, và khi đượ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ệ cơ sở dữ liệu trong
một hệ quản trị cơ sở dữ liệu. Dựa trên những lí do đó, em đã chọn đề tài
“Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo
(VPD) trên Oracle” cho đồ án của mình.
Nội dung đồ án bao gồm bốn chương:
- Chương I: Tổng quan về Oracle
Trong chương này, đồ án nêu lên những khái niệm cơ bản về cơ sở dữ
liệu và tầm quan trọng của cơ sở dữ liệu. Sau đó là phần giới thiệu chung về
hệ quản trị cơ sở dữ liệu Oracle và một vài cơ chế an toàn tiêu biểu.
- Chương II: Cơ sở dữ liệu riêng ảo (VPD) trong Oracle
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
xi
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
Chương thứ hai trình bày tính năng VPD trong cơ sở dữ liệu Oracle.
VPD cho phép ta tạo các chính sách bảo mật để điều khiển việc truy cập ở
mức hàng, cột. VPD mang lại rất nhiều lợi ích trong việc bảo mật sơ sở dữ
liệu trong hệ quản trị cơ sở dữ liệu Oracle.
- Chương III: An toàn dựa vào nhãn (OLS) trong Oracle
OLS được xây dựng trên công nghệ VPD được chuyển giao trong các
phiên bản hệ quản trị cơ sở dữ liệu Oracle Enterprise. OLS cung cấp việc
kiểm soát truy cập bảo mật mức hàng hoạt động bên ngoài các điều khiển truy
cập cơ bản của cơ sở dữ liệu Oracle.
- Chương IV: Triển khai OLS và VPD trên cơ sở dữ liệu giả định
Trong chương cuối cùng, em đưa ra một cơ sở dữ liệu giả định về nhân
sự của một công ty, sau đó ứng dụng OLS và VPD để triền khai phân quyền
cho các nhân viên trong công ty khi truy cập vào cơ sở dữ liệu.
Do thời gian và kiến thức hạn chế nên đồ án của em không tránh khỏi
thiếu sót, em rất mong các Thầy Cô cho nhận xét, góp ý để đồ án của em
được hoàn thiện hơn. Em xin gửi lời cảm ơn chân thành tới Thạc sỹ Ninh Thị
Thanh Tâm, Thạc sỹ Trần Thị Lượng đã động viên, chỉ ra hướng tìm hiểu
và tận tình hướng dẫn em trong quá trình thực hiện đồ án này.
Sinh viên thực hiện
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
xii
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
CHƯƠNG I: TỔNG QUAN VỀ ORACLE
1.1 Cơ sở dữ liệu và tầm quan trọng của cơ sở dữ liệu
1.1.1 Định nghĩa cơ sở dữ liệu
Cơ sở dữ liệu là một tập hợp các dữ liệu về một “tổ chức” nào đó (ví dụ
dữ liệu nhân sự công ty), được lưu giữ trong máy tính, được nhiều người sử
dụng và được tổ chức theo mô hình dữ liệu.
Các tiêu chuẩn của một cơ sở dữ liệu:
- Phản ánh đúng đắn hoạt động của tổ chức
- Không có sự dư thừa thông tin (cùng một thông tin được lưu trữ ở
nhiều nơi và một thông tin mang nhiều tên khác nhau) vì nó làm tốn bộ nhớ
và dễ gây ra các thông tin không đúng khi cập nhật dữ liệu.
- Đảm bảo an toàn dữ liệu (vì được nhiều người sử dụng)
- Có sự độc lập giữa cơ sở dữ liệu và các chương trình để đảm bảo cho
việc bảo trì
- Hiệu quả sử dụng tốt: khai thác trên các máy khác nhau cho kết quả
như nhau
1.1.2 Định nghĩa hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu là một phần mềm cho phép mô tả, lưu giữ,
thao tác và xử lý các dữ liệu trong cơ sở dữ liệu đồng thời phải đảm bảo sự an
toàn và bí mật của dữ liệu.
Chức năng của một hệ quản trị cơ sở dữ liệu:
- Cho phép tạo ra các cấu trúc để lưu giữ dữ liệu
- Cho phép nhập, lưu giữ, xem, xóa, sửa đổi, chèn các dữ liệu vào cơ sở
dữ liệu
- Cho phép thao tác trên các dữ liệu của cơ sở dữ liệu để đưa ra các
thông tin
- Cho phép tạo báo cáo, bảng biểu để tổ chức đưa thông tin ra theo một
mẫu nào đó
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
13
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
- Cung cấp các công cụ đảm bảo sự an toàn dữ liệu
1.1.3 Tầm quan trọng của cơ sở dữ liệu
Hầu hết ứng dụng hay các website đều cần phải có cơ sở dữ liệu, để lưu
trữ dữ liệu, xử lý thông tin và đưa ra các báo cáo, hỗ trợ tìm kiếm…
Khi dữ liệu trở thành trung tâm của ứng dụng thì cung cấp các chức
năng tới người dùng phụ thuộc vào khả năng thao tác dữ liệu, vấn đề mà
người thiết kế và người xây dựng ứng dụng quan tâm khi sử dụng dữ liệu là:
- Lưu dữ liệu tập trung
- Đảm bảo toàn vẹn dữ liệu
- Đảm bảo khả năng truy xuất đồng thời của nhiều người dùng trên dữ
liệu
- Đảm bảo thời gian hồi đáp ngắn cho mỗi người dùng
- Bảo mật dữ liệu
- Trao đổi dữ liệu giữa các hệ thống khác nhau
Những vấn đề này được giải quyết dựa vào khả năng của các hệ quản
trị cơ sở dữ liệu và các phần mềm xử lý dữ liệu do hệ quản trị cơ sở dữ liệu
cung cấp.
1.2 Hệ quản trị cơ sở dữ liệu Oracle
1.2.1 Giới thiệu chung
Hệ quản trị cơ sở dữ liệu Oracle là một hệ quản trị cơ sở dữ liệu mạnh
mẽ, được thiết kế để triển khai cho mọi môi trường doanh nghiệp. Hệ quản trị
cơ sở dữ liệu Oracle có thể xếp vào vị trí số 1 trên thế giới hiện nay về cả tính
năng, khả năng lưu trữ và tốc độ thực hiện. 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.
1.2.2 Đặc điểm của hệ quản trị cơ sở dữ liệu Oracle
• Oracle hỗ trợ việc quản lí dữ liệu có dung lượng hàng trăm Gb
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
14
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
• 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 cơ sở
dữ liệu
• 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
1.2.3 Các cơ chế an toàn trong Oracle
Ngoài cơ chế an toàn dựa vào nhãn và cơ sở dữ liệu riêng ảo sẽ được
trình bày chi tiết trong đồ án, hệ quản trị cơ sở dữ liệu Oracle còn cung cấp
các cơ chế bảo mật như:
- Xác thực bằng mật khẩu
- Phân quyền truy xuất đối tượng
- Sự kiểm toán (Auditting)
- Backup và Restore dữ liệu
- Mã hóa dữ liệu
- Orace Advanced Security
1.2.3.1 Xác thực bằng mật khẩu
Để truy xuất dữ liệu trong Oracle, ta phải truy xuất đến một tài khoản
trong cơ sở dữ liệu đó. Việc truy xuất này có thể là trực tiếp – dùng kết nối
user trong cơ sở dữ liệu, hoặc gián tiếp – dùng quyền đã được khai báo
(preset) trong liên kết cơ sở dữ liệu. Mỗi tài khoản đều có một mật khẩu. Một
tài khoản cơ sở dữ liệu cũng có thể là tài khoản của hệ điều hành.
Mật khẩu của người dùng có thể được khai báo khi tạo tài khoản của
người dùng và có thể được thay đổi sau khi tạo tài khoản. Mật khẩu này được
mã hóa và lưu trữ trong từ điển dữ liệu. Nếu tài khoản là tài khoản hệ điều
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
15
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
hành thì cơ sở dữ liệu sẽ bỏ qua bước kiểm tra mật khẩu và chỉ dựa vào xác
thực quyền trên hệ điều hành.
1.2.3.2 Phân quyền truy xuất đối tượng
Quyền truy xuất dùng để hạn chế việc truy xuất dữ liệu trên đối tượng
cơ sở dữ liệu.
Nếu user A tạo bảng Nhanvien và thực hiện câu truy vấn
GRANT SELECT ON Nhanvien TO PUBLIC;
thì tất cả các user (PUBLIC) đều có thể truy vấn dữ liệu trong bảng Nhanvien.
Để đơn giản hóa việc quản lý phân quyền trên đối tượng, ta có thể dùng Role.
Với các ứng dụng có số người dùng lớn, thì role làm giảm số câu lệnh grant
cần thực hiện. Để tăng thêm tính bảo mật, chúng ta có thể đặt mật khẩu cho
các role và có thể vô hiệu hóa một cách linh hoạt.
1.2.3.3 Sự kiểm toán (Auditting)
Oracle cho phép kiểm toán chọn lọc các hành động của người dùng. 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à không quan tâm tới các đối tượng
lược đồ
- 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 lược đồ
- Kiểm tra các đối tượng lược đồ: Kiểm tra đến sự truy xuất đến một đối
tượng lược đồ nhất định mà không quan tâm đến user
1.2.3.4 Backup và Restore dữ liệu
Backup: Trong khi backup, cơ sở dữ liệu vẫn có thể hoạt động, cơ chế
backup cần uyển chuyển. Người ta cần backup cơ sở dữ liệu để tránh những
rủi ro sau:
- Xóa nhầm dữ liệu.
- Thực thi nhầm các câu lệnh: Insert, Update.
- Lỗi đĩa cứng.
- Mất mát do mất cắp.
Người ta thường tạo file backup theo hai dạng:
- Full backup: Toàn bộ file tạo cơ sở dữ liệu
- Partial backup: Chỉ backup một phần của dữ liệu
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
16
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
Restore: Là quá trình hồi phục lại cơ sở dữ liệu ban đầu từ cơ sở dữ
liệu được backup
1.2.3.5 Mã hóa dữ liệu
Mã hóa để bảo vệ những dữ liệu nhạy cảm trong quá trình truyền và
lưu trữ dữ liệu. Oracle đã cung cấp mã hóa mạng giữa các máy trạm cơ sở dữ
liệu và máy chủ cơ sở dữ liệu từ Oracle 7.
Trước thực tế có rất nhiều mối đe dọa bảo mật, ta có thể chọn giải pháp
bảo mật bổ sung bằng cách mã hóa các dữ liệu nhạy cảm trước khi lưu trong
cơ sở dữ liệu. Để giải quyết nhu cầu đó, các bản Oracle sử dụng gói PL/SQL
mã hóa và giải mã dữ liệu được lưu trữ.
1.2.3.6 Oracle Advanced Security
Oracle Advanced Security cung cấp các thuật toán mã hóa sau đây để
bảo vệ sự riêng tư của mạng truyền dữ liệu:
- Mã hóa RC4
- Mã hóa DES
- Triple-DES Encryption
- Advanced Encryption Standard (tiêu chuẩn mã hóa nâng cao)
Oracle hỗ trợ ứng dụng Oracle Advanced Security nhằm đảm bảo mã
hóa và toàn vẹn dữ liệu. Tuy nhiên, do Oracle Advanced Security cần có
Oracle Net Services để truyền dữ liệu một cách an toàn, nên Oracle Advanced
Security Strong Authentication không được hỗ trợ khi Oracle chạy trên nền
Windows. Các phần của sản phẩm có thể sử dụng Oracle Display Manager
không tận dụng được lợi thế của Oracle Advanced Security, vì Oracle Display
Manager không sử dụng Oracle Net Service.
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
17
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
CHƯƠNG II: CƠ SỞ DỮ LIỆU RIÊNG ẢO
(VPD) TRONG ORACLE
2.1 Tổng quan về VPD
2.1.1 Khái niệm chung về VPD
VPD cho phép ta tạo các chính sách bảo mật để điều khiển việc truy
cập ở mức hàng, cột. Bản chất thì VPD thêm một mệnh đề WHERE vào câu
lệnh SQL được đưa ra đối với table, view hoặc synonym.
VPD tăng việc bảo mật (tới mức mịn) trực tiếp trên các table, view,
synonym. Bởi vì nó gán trực tiếp các chính sách bảo mật lên các đối tượng cơ
sở dữ liệu, và các chính sách sẽ tự động được thực hiện mỗi khi có một người
dùng truy cập dữ liệu.
Khi người dùng trực tiếp hoặc gián tiếp truy nhập tới table, view hay
synonym được bảo vệ bởi chính sách VPD thì Oracle Database sẽ sửa lại câu
lệnh SQL của người dùng bằng cách thêm vào một mệnh đề WHERE. Việc
này trong suốt với người dùng. Chính sách VPD có thể áp dụng trên cách lệnh
SELECT, INSERT, UPDATE, INDEX, and DELETE. VPD không hỗ trợ các
ngôn ngữ định nghĩa dữ liệu như: TRUNCATE hoặc ALTER TABLE.
Ví dụ:
Giả sử người dùng thực hiện câu truy vấn sau:
SELECT * FROM NHANVIEN;
VPD sẽ tự động gắn thêm vào câu truy vấn trên một mệnh đề WHERE:
SELECT * FROM NHANVIEN
WHERE NV_ID = 19;
Lúc này user chỉ có thể view được dữ liệu có NV_ID là 19.
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
18
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
2.1.2 Các ưu điểm của VPD
VPD mang lại rất nhiều lợi ích trong việc bảo mật sơ sở dữ liệu trong
hệ quản trị cơ sở dữ liệu Oracle. Và dưới đây là một số lợi ích của VPD mà ta
có thể nhận thấy dễ dàng đó là:
- Chi phí thấp: các tổ chức 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 thông
qua một câu truy vấn hay một ứng dụng mà không hề biết tới các chính sách
bảo mật được áp dụng như thế nào. Bởi các chính sách bảo mật được đính
kèm với cơ sở dữ liệu và được thực thi một cách tự động trên máy chủ cơ sở
dữ liệu.
- 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 hệ thống sản xuất của họ bởi họ chưa có
cách nào để làm an toàn dữ liệu của họ. Các công ty mẹ thì không thể có được
tất cả dữ liệu của các công ty con trên máy chủ dữ liệu, bởi các công ty con sẽ
có những dữ liệu nhạy cảm không thể tiết lộ. Ngày nay, tất cả những khó
khăn ấy đã được giải quyết, 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.
2.2 Một số ngữ cảnh ứng dụng VPD
Ngữ cảnh ứng dụng (Application context) là một tập các cặp tên – giá
trị, được lưu trong bộ nhớ, nó được xác định, thiết lập và lấy ra bởi người
dùng và các ứng dụng. Các giá trị liên quan được nhóm lại thành một nhóm
được truy cập theo không gian tên miền (namespace) hay tên của nó. Bằng
cách lưu trữ các giá trị và các thuộc tính trong bộ nhớ, sau đó chia sẻ chúng
dựa trên ngữ cảnh, sẽ giúp việc truy xuất các giá trị nhanh chóng hơn.
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
19
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
Hình 2.1 Ngữ cảnh ứng dụng lưu trữ thông tin
Thông thường các ngữ cảnh ứng dụng chứa một số thuộc tính chẳng
hạn như một số ứng dụng, tên một người dùng, một tổ chức, một quy tắc, hay
một tiêu đề. Các chính sách bảo mật có thể được tham chiếu tới các thuộc tính
này khi người dùng đang kiểm soát truy nhập. Việc lưu trữ các giá trị trong bộ
nhớ, với các câu truy vấn giống nhau, hệ thống sẽ lấy cùng một giá trị trong
ngữ cảnh ứng dụng, như vậy sẽ tiết kiệm được thời gian. Vì vậy mà trong tài
liệu bảo mật thường chứa các ngữ cảnh ứng dụng. Tuy nhiên không phải tất
cả ngữ cảnh ứng dụng được sử dụng trong việc thực thi bảo mật, hay sử dụng
bảo mật trong một ngữ cảnh ứng dụng.
2.2.1 Ngữ cảnh mặc định USERENV
Hệ quản trị cơ sở dữ liệu Oracle cung cấp một context mặc định cho
mỗi phiên sử dụng cơ sở dữ liệu. Nó có không gian tên là “USERNV”. Hầu
hết các thuộc tính trong USRENV được định sẵn bởi cơ sở dữ liệu. Không
gian tên này là sự thay thế cho các chức năng USERENV cung cấp trong các
phiên bản trước đây của hệ quản trị cơ sở dữ liệu Oracle.
Nếu ta sử dụng các context của ứng dụng thì vấn đề trở nên đơn giản và
sáng sủa hơn. Bởi USERENV cung cấp rất nhiều thuộc tính hữu ích chẳng
hạn như giúp cung cấp thông tin về môi trường người dùng. USERENV cung
cấp nhiều chi tiết quan trọng về phiên dùng cơ sở dữ liệu như địa chỉ IP của
máy khách, các thuộc tính của phiên làm việc, tên người dùng ủy quyền, giao
thức được sử dụng để kết nối với cơ sở dữ liệu.
USERENV còn có nhiều thuộc tính dùng trong việc thực thi các chính
sách bảo mật cơ sở dữ liêu. Ví dụ, địa chỉ IP của một máy khách và chế độ
xác thực là có sẵn và được sử dụng để chi phối những gì người dùng đã truy
cập vào. Định danh người dùng cũng là thuộc tính của mặc định trong ngữ
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
20
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
cảnh, nó có thể được thiết lập bởi một ứng dụng và nó là giá trị ngữ cảnh duy
nhất được kiểm toán.
Như vậy, thông qua context USERENV, ta có thể lấy được thông tin về
phiên làm việc của người dùng, như: username, IP, Protocol, xác thực của
máy khách, giao thức kết nối cơ sở dữ liệu…
Tất cả thuộc tính của ngữ cảnh ứng dụng đều được tham chiếu thông
qua function SYS_CONTEXT. Hàm SYS_CONTEXT có không gian tên
giống như tham số đầu và tên thuộc tính giống như tham số thứ hai và trả về
giá trị của một thuộc tính liên quan.
Kỹ thuật thường dùng để hiển thị tất cả các thuộc tính đang sử dụng là
tạo một khung nhìn bao gồm kết quả của hàm SYS_CONTEXT. Điều này sẽ
làm giảm bớt các thao tác khi kiểm tra nhiều giá trị và thuận tiện khi mô tả
một list các thuộc tính. Và để lấy được thông tin từ context USERENV, ta cần
thông qua hàm SYS_CONTEXT.
2.2.2 Ngữ cảnh cục bộ (Local Context)
Khác với USERENV định danh người dùng và thuộc tính khách hàng
đều được thiết lập bởi người dùng. Thì với ngữ cảnh cục bộ các thuộc tính
được thiết lập riêng cho từng phiên làm việc, bởi ngữ cảnh cục bộ làm việc
dựa trên đặc tính của cơ sở dữ liệu là hỗ trợ khả năng xác định không gian tên
riêng dựa trên các thuộc tính bổ sung. Vì vậy mà ngữ cảnh cục bộ có thể được
sử dụng trong bất kỳ phiên làm việc nào.
Trong khi các giá trị trong USERENV được tự động thiết lập bởi cơ
sở dữ liệu thì các giá trị trong ngữ cảnh cục bộ được thiết lập thông qua các
chương trình PL/SQL. Đó là quy định khi tạo ngữ cảnh ứng dụng.
2.2.2.1 Tạo một Ngữ cảnh ứng dụng
Khi tạo một ngữ cảnh ứng dụng, ta cần phải cho nó một cái tên và
liên kết nó với một Package PL/SQL chứa các hàm định nghĩa giá trị của các
thuộc tính. Dưới đây là câu lệnh tạo một ngữ cảnh “CTX_EX”.
sec_mgr@KNOX10g> CREATE CONTEXT ctx_ex USING sec_mgr. ctx_ex_mgr;
Context created.
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
21
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
Khi này chương trình chỉ cho phép thiết lập hoặc xóa các giá trị là
CTX_EX_MGR “tin cậy”, nằm trong lược đồ (schema) SEC_MGR. Đây là
một user.
2.2.2.2 Thiết lập các thuộc tính và các giá trị ngữ cảnh
Các giá trị trong Ngữ cảnh ứng dụng được thiết lập bằng cách gọi thủ
tục DBMS_SESION. SET_CONTEXT từ trình quản lý không gian tên. Trong
Ngữ cảnh ứng dụng, ta tạo một cặp tên- giá trị liên quan tới ứng dụng của
chúng ta. Bằng cách thực hiện truy vấn một lần sau đó lưu kết quả của chúng
trong Ngữ cảnh ứng dụng, sẽ giúp các bước thực thi bảo mật dữ liệu tiếp theo
nhanh hơn nhiều so với việc lúc nào cũng gọi một hàm hay một truy vấn. Ở
đây, các giá trị context sẽ được thực thi trên mỗi hàng trong bảng.
Để minh họa điều này, chúng ta tạo một bảng chứa các thông tin
người dùng. Giả sử chúng ta muốn hạn chế hồ sơ của một số người dùng
trong tổ chức. Chúng ta sử dụng Ngữ cảnh ứng dụng để nắm bắt số người
dùng và thiết lập thông tin người dùng.
Tạo bảng dữ liệu:
sec_mgr@KNOX10g> CREATE TABLE lookup_dept
2
AS SELECT ename username, deptno FROM emp;
Table created.
Sau khi tạo bảng dữ liệu chúng ta sẽ thiết lập các giá trị trong ngữ
cảnh, bằng cách gọi một function hay một thủ tục trong schema SEC_MGR
có tên là CTX_EX_MGR. Lưu ý chúng ta có tên chương trình là
CTX_EX_MGR vì chúng ta đã định nghĩa nó trong không gian tên. Thông
thường chúng ta sử dụng package PL/SQL để quản lý Ngữ cảnh ứng dụng.
Các package hầu hết đều chứa các thủ tục và các function yêu cầu thực thi
hay kiểm tra xác nhận về người dùng và thiết lập các thuộc tính cụ thể trong
namespace.
Như vậy, các bước thiết lập ngữ cảnh cục bộ bao gồm:
Bước 1: Tạo một Ngữ cảnh ứng dụng.
Bước 2: Tạo bảng (table).
Bước 3: Tạo một Package PL/SQL để quản lý Ngữ cảnh ứng dụng trên.
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
22
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
2.2.3 Ngữ cảnh toàn cục (Global Context)
Từ hệ quản trị cơ sở dữ liệu Oracle 9i thì việc sử dụng các ngữ cảnh
của ứng dụng đã trở nên phổ biến cùng với sự ra đời của ngữ cảnh toàn cục.
Giống như tên gọi, khi sử dụng ngữ cảnh toàn cục thì các giá trị được sử dụng
bởi mọi người dùng và các phiên làm việc. Không giống như ngữ cảnh cục
bộ, các giá trị được lưu trữ bên trong bộ nhớ riêng của người dùng, ngữ cảnh
toàn cục lưu trữ các giá trị trong khu vực bộ nhớ chung. Làm cho thuận tiện
truy cập và sử dụng.
Ngữ cảnh toàn cục được sử dụng khi chúng muốn chia sẻ các giá trị
trong các phiên làm việc với nhau, hoặc trong trường hợp muốn kết nối các
ứng dụng với nhau. Khi ấy các giá trị sẽ không được xác nhận cụ thể là của
người nào cũng như việc liệu dữ liệu có tin cậy hay không. Với ngữ cảnh toàn
cục, một giá trị có thể chỉ cần thiết lập một lần, và các phiên làm việc cứ như
thế truy cập tới giá trị này. Vì vậy nếu chúng ta sử dụng ngữ cảnh toàn cục thì
sẽ tiết kiềm được bộ nhớ cũng như sẽ dễ dàng cho việc sử dụng hơn vì ta chỉ
cần khởi tạo nó một lần.
Hình 2.2 Ứng dụng của ngữ cảnh toàn cục trong việc kết hợp ngữ cảnh và
kiểm soát dữ liệu trong môi trường bảo mật
Tuy nhiên, từ góc nhìn bảo mật thì chúng ta không nên sử dụng ngữ
cảnh toàn cục mà nên sử dụng ngữ cảnh cục bộ bởi các thuộc tính thì được
thiết lập cho từng phiên và nó là dữ liệu nhạy cảm.
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
23
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
2.3 Các thành phần của chính sách VPD
Để thực hiện các chính sách trong VPD, ta phải tạo ra một hàm được
sinh bởi mệnh đề WHERE, và một chính sách gắn với hàm này trên các đối
tượng mà ta muốn bảo vệ.
2.3.1 Khởi tạo một chức năng để đưa ra các mệnh đề WHERE linh hoạt
Để tạo ra một mệnh đề WHERE, ta phải tạo ra một hàm (không phải là
một thủ tục) để định nghĩa các hạn chế mà ta muốn thi hành. Thông thường,
các SA (security administrator) tạo ra các hàm này trong chính lược đồ của
họ. Đối với các xử lý phức tạp hơn, chẳng hạn như bao gồm việc gọi các hàm
khác thêm các kiểm tra để theo dõi các trường hợp không đăng nhập được,
tạo ra các hàm này trong một gói.
Các chức năng cần phải có :
Nó phải là đối số của một tên lược đồ và một đối tượng đầu vào (bảng,
khung nhìn, từ đồng nghĩa). Xác định các thông số đầu vào và giữ lại các
thông tin nhưng không chỉ định các lược đồ và tên đối tượng chính trong chức
năng. Các chính sách được tạo ra với các gói DBMS_RLS cung cấp tên của
các lược đồ, và đối tượng mà chính sách này sẽ được áp dụng. Đầu tiên chúng
ta phải tạo ra các tham số cho các lược đồ quan hệ, tiếp theo là các tham số
cho đối tượng.
Các giá trị trả về của mệnh đề WHERE sẽ được tạo ra, và nó là kiểu dữ
liệu VARCHAR2
Mệnh đề WHERE phải được tạo ra chính xác, và giống nhau cho tất cả
người dùng đăng nhập
Nhưng trong nhiều trường hợp, ta muốn tạo các mệnh đề WHERE khác
nhau cho từng người dùng, từng nhóm người dùng, hoặc các ứng dụng mà ta
muốn bảo vệ khi từng đối tượng truy cập, ví dụ nếu một người quản lý đăng
nhập vào, chỉ có người đó mới có thể sử dụng mệnh đề WHERE của riêng
mình để quản lý các thông tin.
Ta có thể tạo một VPD với chức năng mà không cần sử dụng ngữ cảnh
ứng dụng, nhưng một ngữ cảnh ứng dụng được tạo ra mạnh hơn chính sách
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
24
Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle
trong VPD, bởi người dùng truy cập một cách an toàn dựa trên các (phiên)
seasion và các thuộc tính của người dùng.
Ngoài ra, ta có thể nhúng C hoặc Java để gọi tới quyền truy nhập thông
tin hệ điều hành hoặc trả về mệnh đề Where từ một tập tin trong hệ điều hành
hoặc các nguồn khác
Tạo một chính sách và đính kèm các chức năng tới các đối tượng cụ thể
mà ta muốn bảo vệ.
2.3.2 Thiết lập chính sách để đính kèm chức năng vào đối tượng cần bảo
vệ
Sau khi tạo ra các chức năng, các chính sách trong VPD cần được liên
kết với table, view, hoặc synonym, các chính sách được tạo bằng cách sử
dụng các gói DBMS_RLS. Nếu không có SYS thì chúng ta phải được granted
các quyền EXECUTE sử dụng gói DBMS_RLS. Gói này có chứa các thủ tục
cho phép quản lý các chính sách và kiểm soát truy cập tới mức mịn. Ví dụ để
đính kèm các chính sách cho một bảng, chúng ta sử dụng thủ tục
DBMS_RLS. ADD_POLICY. Với thiết lập này chính sách có hiệu lực khi
người dùng sử dụng các câu lệnh SELECT hoặc UPDATE trên một bảng
hoặc một khung nhìn.
Sự kết hợp của việc tạo ra các chức năng và sau đó áp dụng nó vào một
bảng, khung nhìn, được gọi là chính sách trong VPD.
2.4 Cấu hình một chính sách VPD
2.4.1 Giới thiệu về chính sách VPD
Sau khi ta tạo ra một hàm để định nghĩa các hành động, ta phải kết hợp
hàm này với table để hành động VPD được thi hành. Ta có thể làm việc này
bằng cách cấu hình chính sách VPD. Chính sách chính là một kĩ thuật cho
việc quản lý hàm VPD. Chính sách cũng cho phép ta thêm vào việc kiểm soát
truy cập ở múc mịn, chẳng hạn như xác định các kiểu câu lệnh SQL hoặc các
cột cụ thể mà chính sách ảnh hưởng tới. Khi mà người dùng cố truy cập tới dữ
liệu trong đối tượng cơ sở dữ liệu này, thì chính sách tự động có hiệu lực
Section này mô tả khái quát cách được sử dụng để attaching policies lên các
CBHD1: Ths. Ninh Thị Thanh Tâm
CBHD2: Ths. Trần Thị Lượng
25