Quan hệ đa mức (Multi-Level Relation - MLR) là sự kết hợp của MAC và mô hình CSDL quan hệ.
Ta biểu diễn một quan hệ đa mức như sau:
Giải thích:
- là các trường dữ liệu.
- Mỗi trường dữ liệu trong một dòng của quan hệ đa mức sẽ được gắn với một lớp truy cập (access class, hay mức truy cập - access level) .
- Mỗi dòng sẽ có một thuộc tính phân lớp của bộ TC (tuple class) có giá trị là max của các giá trị trong hàng đó. TC không chấp nhận giá trị rỗng.
Ví dụ minh họa:
Trong ví dụ trên thì có 2 lớp truy cập là Low và High.
Important
Những chủ thể ở các mức bảo mật khác nhau sẽ thấy những dữ liệu khác nhau trong cùng một quan hệ đa mức.
Ví dụ, góc nhìn của chủ thể ở lớp truy cập Low sẽ là:
Còn đây là góc nhìn của chủ thể ở lớp truy cập High:
Từ hai hình trên, ta có thể thấy tính chất no read-up của MAC được thể hiện rõ qua hai ý sau:
- Bộ dữ liệu mà có khóa chính (thuộc tính Name) gắn với lớp truy cập High, mà cụ thể là dòng mà có giá trị của Name là
Ann
, không tồn tại trong góc nhìn của chủ thể ở lớp truy cập Low. - Các trường dữ liệu ở lớp High sẽ mang giá trị là null đối với góc nhìn của chủ thể ở lớp truy cập Low.
Properties
Các tính chất của MLR:
- Với mỗi bộ trong một quan hệ đa mức, các thuộc tính của khóa chính phải có cùng lớp truy cập.
- Với mỗi bộ trong một quan hệ đa mức, lớp truy cập kết hợp với một thuộc tính không phải là khóa phải lớn hơn hoặc bằng lớp truy cập của khóa chính 🤔.
Polyinstantiation
Đa thể hiện (polyinstantiation) có hai loại:
-
Đa thể hiện hữu hình (visible polyinstantiation): Khi một chủ thể ở mức cao chèn/sửa dữ liệu vào một trường mà đã chứa dữ liệu tại mức thấp hơn.
- Ví dụ, chủ thể ở mức High muốn chèn thêm dữ liệu vào trường Dept là Dept2 và trường Salary là 200K.
- Khi đó, DBMS sẽ chèn thêm một bộ mới với lớp truy cập của trường Dept và Salary là High với giá trị lần lượt là Dept2 và 200K.
-
Đa thể hiện vô hình (invisible polyinstantiation): khi một chủ thể ở mức thấp chèn/sửa dữ liệu vào một trường mà đã chứa dữ liệu tại mức cao hơn hay mức không thể so sánh được.
- DBMS cũng sẽ xử lý trường hợp này tương tự với đa thể hiện hữu hình: chèn thêm một bộ ở mức thấp mà không làm thay đổi bộ ở mức cao hơn.
- Việc một bộ tồn tại ở nhiều mức chính là lý giải cho cái tên “đa thể hiện”.
- Trong ví dụ bên dưới, chủ thể ở mức S đã thực hiện câu query sau:
UPDATE Employee SET Salary = '20K' WHERE Name = 'Ann'
.
Resources
- Slide “An toàn và bảo mật trong hệ thống thông tin - Chương 02: Điều khiển truy cập phần 3” của trường Đại Học Khoa học Tự nhiên TP.HCM.
- Slide “Bảo mật hệ thống thông tin - Chương 5: Điều khiển truy cập bắt buộc (MAC)” của trường Đại Học Bách Khoa Tp.HCM.
- CPSC 4670 Database Security and Auditing by Philip Ward