Bảo mật dữ liệu trong SQL được thực hiện dựa trên ba khái niệm chính sau đây:
Người dùng cơ sở dữ liệu (Database user):
Là đối tượng sử dụng cơ sở dữ liệu, thực thi các thao tác trên cơ sở dữ liệu như tạo bảng, truy xuất dữ liệu,.
Mỗi một người dùng trong cơ sở dữ liệu được xác định thông qua tên người dùng (User ID). Một tập nhiều người dùng có thể được tổ chức trong một nhóm và được gọi là nhóm người dùng (User Group).
Chính sách bảo mật cơ sở dữ liệu có thể được áp dụng cho mỗi người dùng hoặc cho các nhóm người dùng.
59 trang |
Chia sẻ: thuongdt324 | Lượt xem: 1348 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Bài giảng Microsoft SQL Server 2008 - Chương 11: Bảo mật và phân quyền - Trần Thị Kim Chi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1Bảo mật và phân quyềnChương 112Security MechanismsBảo mật dữ liệu trong SQL được thực hiện dựa trên ba khái niệm chính sau đây: Người dùng cơ sở dữ liệu (Database user): Là đối tượng sử dụng cơ sở dữ liệu, thực thi các thao tác trên cơ sở dữ liệu như tạo bảng, truy xuất dữ liệu,... Mỗi một người dùng trong cơ sở dữ liệu được xác định thông qua tên người dùng (User ID). Một tập nhiều người dùng có thể được tổ chức trong một nhóm và được gọi là nhóm người dùng (User Group). Chính sách bảo mật cơ sở dữ liệu có thể được áp dụng cho mỗi người dùng hoặc cho các nhóm người dùng. 3Security MechanismsCác đối tượng cơ sở dữ liệu (Database objects): Tập hợp các đối tượng, các cấu trúc lưu trữ được sử dụng trong cơ sở dữ liệu như bảng, khung nhìn, thủ tục, hàm được gọi là các đối tượng cơ sở dữ liệuĐây là những đối tượng cần được bảo vệ trong chính sách bảo mật của cơ sở dữ liệu. • Đặc quyền (Privileges): Là tập những thao tác được cấp phát cho người dùng trên các đối tượng cơ sở dữ liệu. Chẳng hạn một người dùng có thể truy xuất dữ liệu trên một bảng bằng câu lệnh SELECT nhưng có thể không thể thực hiện các câu lệnh INSERT, UPDATE hay DELETE trên bảng đó. 4Security MechanismsBảo mật của SQL Server gồm 3 lớp :Login security : kiểm soát ai có thể log vào SQL Server.Database access security : kiểm soát ai có thể truy cập vào một DB cụ thể trên server.Permission security : kiểm soát một user có thể thực hiện thao tác gì trên DB. 5Security MechanismsLoginsLogin identifiers (Ids) are associated with users when they connect to Microsoft® SQL Server™ 2008Control access to the SQL Server system UsersA user identifier (ID) identifies a user within a database All permissions and ownership of objects in the database are controlled by the user account RolesAllow you to collect users into a single unit against which you can apply permissions Permissions are applied automatically when the users become members of the role GroupsSQL Server security can be managed with Windows NT/2008 Groups6Login Cung cấp 2 modeWindows Authentication Mode (Windows Authentication)Tích hợp với login security của windows. Việc uỷ nhiệm Network security được thiết lập khi user login vào networkThông qua Windows để xác định account và password login.Mixed mode(Windows Authentication and SQL Server Authentication)Là sự kết hợp của Windows Authentication và SQL Server Authentication, ở chế độ này cả user của Windows và SQL Server để có thể thiết lập để truy nhập SQL Server.SQL server tự xác nhận login account và password khi user connect.7Window mode: Không phải nhớ nhiều username, passwordPolicies của window: thời gian hết hạn, chiều dài tối đa, lưu giữ history.Nhược điểm: chỉ user window mới có thể kết nối đến sqlserver Mixed mode:Không phân biệt net libraryHack vào network không có nghĩa là cũng hack vào sql serverKế hoạch phân quyền và bảo mật8Đặt chế độ.Nhấn phải chuột chọn tên Server (Instance).Chọn Properties.Chọn bảng Security.Chọn chế độ bảo mật -> OkKế hoạch phân quyền và bảo mật9QUẢN TRỊ NGƯỜI DÙNG.Người dùng trong SQL Server được chia thành 2 mức: Người truy nhập vàoSQL Server gọi là Login, người khai thác CSDL gọi là User.Tạo User AccountSQL Server Enterprise ManagerT_SQL: sp_addloginsp_addlogin [@loginame =] 'login' [,[@passwd =] 'password'] [,[@defdb =] 'database'] [,[@deflanguage =] 'language'] [,[@sid =] 'sid'] [,[@encryptopt =] 'encryption_option']Ví dụ: Tạo login có tên ‘Albert’, mật khẩu ‘corporate’EXEC sp_addlogin 'Albert', 'food', 'corporate'10SERVER ROLE, DATABASE ROLE.Role là đối tượng xác định nhóm thuộc tính để gán quyền cho các user thamgia khai thác SQL Server.Server Role.Nhóm các quyền thực hiện quản trị hệ thống, gồm các nhóm sau:Bulk Insert Administrators: Được phép thực hiện Bulk Insert.Database Creators: Được phép tạo và sửa đổi cấu trúc CSDL.Disk Administrators: Có thể quản trị các file trên đĩa.Proccess Administrator: Quản trị các dịch vụ đang chạy của SQL Server.Security Administrators: Quản trị hệ thống bảo mật.Setup Administrators: Quản trị các thủ tục mở rộng (xp_).128System Administrators: Quản trị hệ thống SQL Server.11SERVER ROLE, DATABASE ROLE.Xem cụ thể như sau:Mở rộng Server (nhấn dấu ‘+’ phần tên Server).Mở rộng Security.Chọn Server Roles:12SERVER ROLE, DATABASE ROLE.Database Role.Role là đối tượng mà thông qua nó người quản trị có thể gán quyền khai thác cho người sử dụng. Role do CSDL quản lý, khi tạo CSDL hệ thống tự đặt một số Role ngầm định.13SERVER ROLE, DATABASE ROLE.Cú pháp tạo Rolesp_addrole [ @rolename = ] 'role'[ , [ @ownername = ] 'owner' ]Ví dụ: Thêm Role có tên Managers:EXEC sp_addrole 'Managers' Sử dụng câu lệnhsp_addrole [ @rolename = ] 'role'[ , [ @ownername = ] 'owner' ]Ví dụ: Thêm Role có tên Managers:EXEC sp_addrole 'Managers'.14User Roles Fixed Server RoleFixed Server RoleMô tảdbcreatorTạo và thay đổi databasediskadminQuản lý disk fileprocessadminQuản lý các tiến trình trên SQL ser versecurityadminQuản lý login serverserveradminThiết lập cấu hình serversetupadminCài đặt bản sao và xử lý extended procedures.sysadminCó thể thực thi mọi hoạt động trong việc install sql Thêm fixed server role cho 1 accountSQL Server Enterprise ManagerT_SQLsp_addsrvrolemember [@loginame =] 'login', [@rolename =] 'role'15User Roles - Fixed Database Role Thêm fixed databsase role cho 1 userSQL Server Enterprise ManagerT_SQL: sp_addrolemember [@rolename =] 'role', [@membername =] 'security_account'Fixed Database RoleMô tảdb_ownerTHực thi mọi hoạt động trên databasedb_accessadminThêm xoá user trên databasedb_datareaderXem tất cả dữ liệu trên database.db_datawriterThêm, sửa, xóa dữ liệu trên database.db_ddladminThêm, sửa, xóa object database. db_securityadminQuản lý role, object permission trên database.db_backupoperatorTạo backup databasedb_denydatareaderCập nhật schema, không cho phép xem dữ liệudb_denydatawriterKhông cho phép cập nhật dữ liệu trêndatabase.16Kế hoạch phân quyền và bảo mậtCác loại quyền (Permission) Object Permissions: Cho phép xử lý các lệnh SELECT, INSERT, UPDATE và DELETE trên table, view, stored procedure.Statement Permissions: Áp dụng trường hợp user tạo object. Các statement permissions: CREATE TABLE, CREATE DATABASE, CREATE PROCEDURE, and CREATE RULE.Implied Permissions: thừa kế từ các quyền khác 17Kế hoạch phân quyền và bảo mậtCấp phát quyền Câu lệnh GRANT được sử dụng để cấp phát quyền cho người dùng hay nhóm người dùng trên các đối tượng cơ sở dữ liệu. Câu lệnh này thường được sử dụng trong các trường hợp sau: Người sở hữu đối tượng cơ sở dữ liệu muốn cho phép người dùng khác quyền sử dụng những đối tượng mà anh ta đang sở hữu. Người sở hữu cơ sở dữ liệu cấp phát quyền thực thi các câu lệnh (như CREATE TABLE, CREATE VIEW,...) cho những người dùng khác. 18Kế hoạch phân quyền và bảo mậtGRANT {ALL [PRIVILEGES] | permission[,...n]} { [(column[,...n])] ON {table | view} | ON {table | view}[(column[,...n])] | ON {stored_procedure | extended_procedure} }TO security_account[,...n][WITH GRANT OPTION][AS {group | role}]Cú pháp19Kế hoạch phân quyền và bảo mậtTrong đó: ALL [PRIVILEGES] Cấp phát tất cả các quyền cho người dùng trên đối tượng cơ sở dữ liệu được chỉ định. Các quyền có thể cấp phát cho người dùng bao gồm: Đối với bảng, khung nhìn, và hàm trả về dữ liệu kiểu bảng: SELECT, INSERT, DELETE, UPDATE và REFERENCES. Đối với cột trong bảng, khung nhìn: SELECT và UPDATE. Đối với thủ tục lưu trữ và hàm vô hướng: EXECUTE. Trong các quyền được đề cập đến ở trên, quyền REFERENCES được sử dụng nhằm cho phép tạo khóa ngoài tham chiếu đến bảng cấp phát 20Kế hoạch phân quyền và bảo mậtCác_quyền_cấp_phát: Danh sách các quyền cần cấp phát cho người dùng trên đối tượng cơ sở dữ liệu được chỉ định. Các quyền được phân cách nhau bởi dấu phẩy Tên_bảng|tên_khung_nhìn: Tên của bảng hoặc khung nhìn cần cấp phát quyền. Danh_sách_cột: Danh sách các cột của bảng hoặc khung nhìn cần cấp phát quyền. Tên_thủ_tục: Tên của thủ tục được cấp phát cho người dùng. 21Kế hoạch phân quyền và bảo mậtTên_hàm: Tên hàm (do người dùng định nghĩa) được cấp phát quyền. Danh_sách_người_dùng: Danh sách tên người dùng nhận quyền được cấp phát. Tên của các người dùng được phân cách nhau bởi dấu phẩy. WITH GRANT OPTION: Cho phép người dùng chuyển tiếp quyền cho người dùng khác. 22Kế hoạch phân quyền và bảo mậtVí dụ: Cấp phát cho người dùng có tên thuchanh quyền thực thi các câu lệnh SELECT, INSERT và UPDATE trên bảng Products GRANT SELECT,INSERT,UPDATE ON Products TO thuchanh 23Kế hoạch phân quyền và bảo mậtVí dụ: Cho phép người dùng thuchanh quyền xem Productname, unitInstock của bảng Products GRANT SELECT (Productname, unitInstock) ON Products TO thuchanh hoặc: GRANT SELECT ON Products (Productname, unitInstock) TO thuchanh 24Kế hoạch phân quyền và bảo mậtVí dụ: Với quyền được cấp phát như trên, người dùng thuchanh có thể thực hiện câu lệnh sau trên bảng Products SELECT ProductName, UnitInstock from Products Nhưng câu lệnh dưới đây lại không thể thực hiện được SELECT * FROM Products 25Kế hoạch phân quyền và bảo mậtTrong trường hợp cần cấp phát tất cả các quyền có thể thực hiện được trên đối tượng cơ sở dữ liệu cho người dùng, thay vì liệt kê các câu lệnh, ta chỉ cần sử dụng từ khoá ALL PRIVILEGES (từ khóa PRIVILEGES có thể không cần chỉ định). Câu lệnh dưới đây cấp phát cho người dùng thuchanh các quyền SELECT, INSERT, UPDATE, DELETE VÀ REFERENCES trên bảng [Order details] GRANT ALL ON [order details] TO thuchanh 26Kế hoạch phân quyền và bảo mậtChú ý:Người dùng không có quyền cấp phát những quyền mà mình được phép cho những người sử dụng khác.Trong một số trường hợp, khi ta cấp phát quyền cho một người dùng nào đó, ta có thể cho phép người đó chuyển tiếp quyền cho người dùng khác bằng cách chỉ định tuỳ chọn WITH GRANT OPTION trong câu lệnh GRANT. 27Kế hoạch phân quyền và bảo mậtVí dụ: Cho phép người dùng thuchanh quyền xem dữ liệu trên bảng Products đồng thời có thể chuyển tiếp quyền này cho người dùng khác GRANT SELECT ON ProductsTO thuchanh WITH GRANT OPTION 28Kế hoạch phân quyền và bảo mậtCấp phát quyền thực thi các câu lệnh Lệnh GRANT còn có thể sử dụng để cấp phát cho người sử dụng một số quyền trên hệ quản trị cơ sở dữ liệu hoặc cơ sở dữ liệu. Những quyền có thể cấp phát trong trường hợp này bao gồm: • Tạo cơ sở dữ liệu: CREATE DATABASE. • Tạo bảng: CREATE TABLE • Tạo khung nhìn: CREATE VIEW • Tạo thủ tục lưu trữ: CREATE PROCEDURE • Tạo hàm: CREATE FUNCTION • Sao lưu cơ sở dữ liệu: BACKUP DATABASE 29Kế hoạch phân quyền và bảo mậtCấp phát quyền thực thi các câu lệnh Cú pháp: GRANT ALL | danh_sách_câu_lênh TO danh_sách_người_dùngVí dụ: Để cấp phát quyền tạo bảng và khung nhìn cho người dùng có tên là thuchanh, ta sử dụng câu lệnh như sau: GRANT CREATE TABLE,CREATE VIEW TO thuchanh 30Ví dụ về GRANTGRANT INSERT, SELECT ON Sailors TO HoratioHoratio có thể truy vấn hoặc thêm dòng mới vào table SailorsGRANT DELETE ON Sailors TO Yuppy WITH GRANTOPTIONYuppy có thể xóa dữ liệu của table Sailors và có thể uỷ quyền cho người khácGRANT UPDATE (rating) ON Sailors TO DustinDustin có thể cập nhật cột rating trên các dòng của table SailorGRANT SELECT ON ActiveSailors TO Guppy, YuppyGuppy, Yuppy không truy cập trực tiếp table Sailors mà thông qua view ActiveSailors31Kế hoạch phân quyền và bảo mậtThu hồi quyền Câu lệnh REVOKE được sử dụng để thu hồi quyền đã được cấp phát cho người dùng. Tương ứng với câu lệnh GRANT, câu lệnh REVOKE được sử dụng trong hai trường hợp:Thu hồi quyền đã cấp phát cho người dùng trên các đối tượng cơ sở dữ liệu.Thu hồi quyền thực thi các câu lệnh trên cơ sở dữ liệu đã cấp phát cho người dùng 32Kế hoạch phân quyền và bảo mậtREVOKE [GRANT OPTION FOR] {ALL [PRIVILEGES] | permission[,...n]} { [(column[,...n])] ON {table | view} | ON {table | view}[(column[,...n])] | {stored_procedure | extended_procedure} }{TO | FROM} security_account[,...n][CASCADE][AS {group | role}]Cú pháp33Kế hoạch phân quyền và bảo mậtVí dụ 4.4: Thu hồi quyền thực thi lệnh INSERT trên bảng Products đối với người dùng thuchanh. REVOKE INSERT ON Products FROM thuchanh 34Kế hoạch phân quyền và bảo mậtThu hồi quyền đã cấp phát trên cột UnitInstock (chỉ cho phép xem dữ liệu trên cột ProductName) REVOKE SELECT ON Products(UnitInstock) FROM thuchanh Chú ý: Khi ta sử dụng câu lệnh REVOKE để thu hồi quyền trên một đối tượng cơ sở dữ liêu từ một người dùng náo đó, chỉ những quyền mà ta đã cấp phát trước đó mới được thu hồi, những quyền mà người dùng này được cho phép bởi những người dùng khác vẫn còn có hiệu lực.35Kế hoạch phân quyền và bảo mậtVí dụ: Giả sử trong cơ sở dữ liệu ta có 3 người dùng là A, B và C. A và B đều có quyền sử dụng và cấp phát quyền trên bảng R. A thực hiện lệnh sau để cấp phát quyền xem dữ liệu trên bảng R cho C: GRANT SELECT ON R TO C và B cấp phát quyền xem và bổ sung dữ liệu trên bảng R cho C bằng câu lệnh: GRANT SELECT, INSERT ON R TO C 36Kế hoạch phân quyền và bảo mậtNhư vậy, C có quyền xem và bổ sung dữ liệu trên bảng R. Bây giờ, nếu B thực hiện lệnh: REVOKE SELECT, INSERT ON R FROM C Vậy C còn quyền gì trên R???????Người dùng C sẽ không còn quyền bổ sung dữ liệu trên bảng R nhưng vẫn có thể xem được dữ liệu của bảng này (quyền này do A cấp cho C và vẫn còn hiệu lực).37Kế hoạch phân quyền và bảo mậtNếu ta đã cấp phát quyền cho người dùng nào đó bằng câu lệnh GRANT với tuỳ chọn WITH GRANT OPTION thì khi thu hồi quyền bằng câu lệnh REVOKE phải chỉ định tuỳ chọn CASCADE. Trong trường hợp này, các quyền được chuyển tiếp cho những người dùng khác cũng đồng thời được thu hồi. 38Kế hoạch phân quyền và bảo mậtVí dụ: Ta cấp phát cho người dùng A trên bảng R với câu lệnh GRANT như sau: GRANT SELECT ON R TO A WITH GRANT OPTION Sau đó người dùng A lại cấp phát cho người dùng B quyền xem dữ liệu trên R với câu lệnh: GRANT SELECT ON R TO B 39Kế hoạch phân quyền và bảo mậtNếu muốn thu hồi quyền đã cấp phát cho người dùng A, ta sử dụng câu lệnh REVOKE như sau: REVOKE SELECT ON RFROM A CASCADE Câu lệnh trên sẽ đồng thời thu hồi quyền mà A đã cấp cho B và như vậy cả A và B đều không thể xem được dữ liệu trên bảng R.40Kế hoạch phân quyền và bảo mậtTrong trường hợp cần thu hồi các quyền đã được chuyển tiếp và khả năng chuyển tiếp các quyền đối với những người đã được cấp phát quyền với tuỳ chọn WITH GRANT OPTION, trong câu lệnh REVOKE ta chỉ định mệnh đề GRANT OPTION FOR. 41Kế hoạch phân quyền và bảo mậtVí dụ: Trong ví dụ trên, nếu ta thay câu lệnh: REVOKE SELECT ON EmployeesFROM A CASCADE bởi câu lệnh: REVOKE GRANT OPTION FOR SELECT ON EmployeesFROM A CASCADE Thì B sẽ không còn quyền xem dữ liệu trên bảng R đồng thời A không thể chuyển tiếp quyền mà ta đã cấp phát cho những người dùng khác (tuy nhiên A vẫn còn quyền xem dữ liệu trên bảng R). 42Kế hoạch phân quyền và bảo mậtThu hồi quyền thực thi các câu lênh: Việc thu hồi quyền thực thi các câu lệnh trên cơ sở dữ liệu (CREATE DATABASE, CREATE TABLE, CREATE VIEW,...) được thực hiện đơn giản với câu lệnh REVOKE có cú pháp: REVOKE ALL | các_câu_lệnh_cần_thu_hồi FROM danh_sách_người_dùng 43Kế hoạch phân quyền và bảo mậtThu hồi quyền thực thi các câu lênh: Ví dụ: Để không cho phép người dùng thuchanh thực hiện lệnh CREATE TABLE trên cơ sở dữ liệu, ta sử dụng câu lệnh: REVOKE CREATE TABLE FROM thuchanh44Kế hoạch phân quyền và bảo mậtDENY: từ chối 1 permission và ngăn chặn 1 user, group, role thừa kế permission thông qua mối quan hệ thành viên trong group và role.Statement permissions: DENY{ALL | statement[,...n]} TO security_account[,...n]Object permissions: DENY {ALL [PRIVILEGES] | permission[,...n]} { [(column[,...n])] ON {table | view} | ON {table | view}[(column[,...n])] | ON {stored_procedure | extended_procedure} } TO security_account[,...n][CASCADE]45Kế hoạch phân quyền và bảo mậtLập kế hoạch phân quyềnLiệt kê các item và activities trên database Liệt kê các cá nhân và các group trong công ty Tham khảo chéo 2 danh sách này để xác định user có thể thực hiện thao tác gì trên database46Kế hoạch phân quyền và bảo mật47Lập bảng phân quyền sauActivittiesStudentCourseEnrollCập nhật sinh viênCập nhật môn họcĐăng ký môn họcCập nhật điểm môn họcXem môn học, xem điểmKế hoạch phân quyền và bảo mật48UserActivitesQLHSSVNMHANVLONGCập nhật sinh viênQLMHTTTRANGCập nhật môn họcDKMHNMHATTTRANGĐăng ký môn họcGiáo viênVTTHATQTRUNGCập nhật điểm môn họcSinh viênXEm điểmKế hoạch phân quyền và bảo mật49Bảo mật và phân quyềntrên SQL Server50Giới thiệu về bảo mật cơ sở dữ liệuViệc xây dựng hệ thống bảo mật cho cơ sở dữ liệu phải thỏa mãn 3 tính chất sau:Tính bảo mật: User không được phép xem dữ liệu mà họ không được cấp quyền xem.Tính toàn vẹn: User không được phép cập nhật dữ liệu mà họ không được cấp quyền chỉnh sửa.Tính tiện ích: User phải xem và cập nhật được dữ liệu mà họ được cấp quyền.51Kiểm soát truy cập dữ liệuCác khái niệm:Qui tắc bảo mật: xác định người dùng nào có quyền gìCơ chế bảo mật: cho phép chúng ta hiện thực qui tắc bảo mậtCó 2 cơ chế bảo mật ở mức DBMS:Kiểm soát truy cập tùy ýKiểm soát truy cập đồng thời52Kiểm soát truy cập tùy ýDựa trên khái niệm quyền truy cập trên các đối tượng (tables, views) và cơ chế trao quyền cho user.Người tạo table hoặc view có toàn quyền trên table hoặc view đó.DBMS sẽ kiểm tra user nào được trao và bị thu hồi quyền và chỉ những yêu cầu từ những user được trao quyền mới được cho phép53GRANT/REVOKE trên ViewsNgười tạo view có quyền trên view nếu có quyền trên tất cả các table gốc.Nếu người tạo ra view bị mất quyền SELECT trên table gốc thì VIEW đó sẽ bị huỷ.Nếu người tạo view mất quyền được ủy quyền trên table gốc thì cũng mất bị quyền được uỷ quyền trên view.=> View kết hợp với GRANT và REVOKE sẽ tạo thành công cụ kiểm soát truy cập hiệu quả. (executed by Joe)54Phân quyền dựa trên roleSQL92: phân quyên trên authorization ids là định danh cho các user hoặc các nhóm user.SQL99: quyền được gán cho role role được gán cho user hoặc cho role khác. Phản ánh được thực tế của các tổ chức. 55Mã hóaMask” dữ liệu để đảm bảo cho việc truyền nhận và lưu trữ. Mã hoá Input: dữ liệu, khóa mã hóaOutput: dữ liệu được mã hóaGiải mãInput: dữ liệu được mã hóa, khóa giải mã hóaOutput: dữ liệu gốc 56Phương pháp mã hóaSymmetric: Khóa mã hóa = khóa giải mãTất cả user được phân quyền đều biết được khóa này VD: DES, AESPublic-Key Mỗi user có 2 khóaKhóa mã hóa public: chung, tất cả user đều biếtKhóa giải mã: chỉ user biếtVD: RSA 57Kiểm soát truy cập bắt buộcDựa trên qui tắc “system wide”: qui tắc này không bị thay đổi bởi mỗi user cá nhân.Mỗi object (tables, views) được gán vào 1 security class.Mỗi subject (user hoặc user program) được gán cho 1 clearance đối với 1 security class.Qui tắc dực trên các security class và các clearance điều khiển ai có thể đọc/ghi object nào. 58Tại sao kiểm soát truy cập bắt buộc?Ý tưởng là để đảm bảo cho thông tin không bao giờ lưu chuyển từ mức bảo mật cao xuống mức bảo mật thấpCác qui tắc quản lý truy cập bắc buộc được áp dụng để hỗ trợ cho những khiết điểm của kiểm soát truy cập tùy ý59Mô hình Bell-LaPadulaObjects (tables, views, tuples)Subjects (users, user programs)Security classes:Top secret (TS), secret (S), confidential (C), unclassified (U): TS > S> C > UMỗi object và subject được gán vào 1 class.Subject S có thể đọc object O nếu và chỉ nếu class(S) >=class(O) Subject S có thể ghi object O nếu và chỉ nếu class(S) <=class(O)