Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 3: Khôi phục dữ liệu và an toàn dữ liệu - Phần 2: An toàn dữ liệu - Phạm Thị Bạch Huệ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 3: Khôi phục dữ liệu và an toàn dữ liệu - Phần 2: An toàn dữ liệu - Phạm Thị Bạch Huệ", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
bai_giang_he_quan_tri_co_so_du_lieu_chuong_3_khoi_phuc_du_li.pdf
Nội dung text: Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 3: Khôi phục dữ liệu và an toàn dữ liệu - Phần 2: An toàn dữ liệu - Phạm Thị Bạch Huệ
- Chương 3 Phụchồidữ liệu và An toàn dữ liệu PHẦN 2 AN TOÀN DỮ LIỆU GV: Phạm Thị Bạch Huệ Email: [email protected] 1 Nội dung • Các PP điềukhiểntruycập (Access control) –DAC. –MAC. – RBAC. 2 1
- Có 3 kiểu điều khiểntruycập • DAC (Discretionary Access Control) – Cho biếtchủ thể nào có thể truy cậpkiểugìđến các đối tượng CSDL. –Cónhững nguyên tắc để 1 chủ thể có thể tùy ý cấp quyền hay lấylạiquyền cho/ từ 1 chủ thể khác. • MAC (Mandatory Access Control) – Định trước các nguyên tắc để chủ thể (thuộc1 lớp) truy cập trựctiếphoặcgiántiếp đếncáclớpdữ liệu. • RBAC (Role-based Access Control –Vaitròlà1 tập các quyền. Không thựchiệncấp quyềncho từng chủ thể mà gán cho chủ thể 1 vai trò, khi đóchủ thể sẽ có tấtcả các quyềnthuộcvaitròđó. 3 • DAC 4 2
- DAC • Điềukhiểntruycậpnhiệmý làđiềukhiểnviệc truy cậpcủachủ thể vào đốitượng thông qua định danh củachủ thể và các luật định trước. •Cơ chế này đượcgọilànhiệm ý là do nó cho phép chủ thể có thể cấpquyền cho chủ thể khác truy cập các đốitượng củanó. 5 AC ở các HQT CSDL thương mại •Tấtcả các HQT CSDL thương mại đều cài đặt DAC. •Cácmôhìnhcấpquyền theo cơ chế DAC hiệntại đềudựatrênmôhìnhSystem R. • System R: do Griffiths và Wade phát triểnvào 1976, là một trong những mô hình ra đời đầu tiên cho hệ quảntrị cơ sở dữ liệuquanhệ. •System R: dựa trên nguyên lý ủyquyềnquảntrị cho ngườisở hữu. 6 3
- System R •Cácđốitượng đượcquản lý trong mô hình là table và view. •Cácphương thứctruycập (privilege) là select, insert, update, delete, drop, index (chỉ cho table), alter (chỉ cho table). •Hỗ trợ làm việc trên group, không hỗ trợ role. • Dùng câu lệnh GRANT để cấpquyền, có tùy chọn GRANT OPTION. 7 System R •Sựủy quyền đượcthể hiện thông qua GRANT OPTION, nếucấpquyền cho 1 user bằng câu lệnh có GRANT OPTION thì user đó ngoài việccóthể thựchiệnquyền đượccấp, còn có thể cấpquyền đó cho các user khác. • 1 user chỉ có thể cấpquyềntrên1 quanhệ cho trướcnếuuser đólàngườisở hữu quan hệ hoặc user đó đượcngườikháccấpquyềnvớicâu lệnh có tuỳ chọnlàGRANT OPTION. 8 4
- Câu lệnh GRANT GRANT PrivilegeList| ALL[PRIVILEGES] ON Relation | View TO UserList | PUBLIC [WITH GRANT OPTION] •Cóthể cấp quyền (privilege) trên table và view. • Privilege áp dụng trên cả table (hoặc view). • Đối với quyền cập nhật (update privilege), cần phải chỉ định quyền này áp dụng trên cột nào. 9 Câu lệnh GRANT – Ví dụ A: GRANT select, insert ON NHANVIEN TO B WITH GRANT OPTION; A: GRANT select ON NHANVIEN TO C WITH GRANT OPTION; B: GRANT select, insert ON NHANVIEN TO C; • C có quyền select (từ A và B) và quyền insert (từ B). •C cóthể cấp quyền select cho các user khác, nhưng C không thể cấp quyền insert. 10 5
- Câu lệnh GRANT •Vớitừng user, hệ thống ghi nhậnlại: –A: tậphợp các quyềnmàuser sở hữu. –B: tậphợp các quyềnmàuser cóthểủy quyềnchongười khác. • Khi 1 user thi hành câu lệnh GRANT, hệ thống sẽ –TìmphầngiaocủatậpB vớitập quyền trong câu lệnh. –Nếuphầngiaolàrỗng, thì câu lệnh không được thi hành. 11 Câu lệnh GRANT – Ví dụ A: GRANT select, insert ON NHANVIEN TO C WITH GRANT OPTION; A: GRANT select ON NHANVIEN TO B WITH GRANT OPTION; A: GRANT insert ON NHANVIEN TO B; C: GRANT update ON NHANVIEN TO D WITH GRANT OPTION; B: GRANT select, insert ON NHANVIEN TO D; 12 6
- Câu lệnh GRANT – Ví dụ • Trong ví dụ trên, hãy cho biết: –Câulệnh nào đượcthực thi hoàn toàn? –Câulệnh nào không đượcthựcthi? –Câulệnh nào thựcthimộtphần? TRẢ LỜI: •3 câulệnh đầu tiên thực thi hoàn toàn vì A là ngườisở hữutable. •Câulệnh thứ 4 không thực thi vì C không có quyền update trên table. •Câulệnh thứ 5 thựcthimộtphần, B có quyền select, insert nhưng B không có grant option cho quyền insert nên D chỉ nhận được quyền select. 13 Câu lệnh Revoke REVOKE PrivilegeList| ALL[PRIVILEGES] ON Relation | View FROM UserList | PUBLIC • Câu lệnh này dùng để thu hồiquyền đãcấp. •User chỉ có thể thu hồi quyềnmàuser đãcấp. • User không thể chỉ thu hồi grant option. •Mộtngườichỉ có thể bị thu hồi quyềntruyxuất p khi tấtcả những ngườicấp quyềnp chohọđềuthuhồi quyềnp lại. 14 7
- Câu lệnh Revoke – Ví dụ A: GRANT select ON NHANVIEN TO C WITH GRANT OPTION; A: GRANT select ON NHANVIEN TO B WITH GRANT OPTION; C: GRANT insert ON NHANVIEN TO D; B: GRANT select ON NHANVIEN TO D; C: REVOKE select ON NHANVIEN FROM D; • Sau câu lệnh này thì D vẫncóquyền select trên bảng NHANVIEN vì B vẫnchưa thu hồi quyền select củaD. 15 Câu lệnh Revoke •Thu hồiquyền đệ quy (recursive revocation): khi ngườidùngA thuhồiquyềntruyxuấttrên bảng củamộtngườiB thìtấtcả các quyềnmàB đã gán cho ngườikhácđềubị thu hồi. 16 8
- Thu hồi quyền đệ quy B F 70 H 10 30 40 A C 20 60 E 50 G B 10 60 A C G 20 E 50 17 Thu hồi quyền đệ quy •Sẽ phá vỡ quyềntruyxuấtmàđốitượng bị thu hồi quyền đãcấp. •Thựctế khi 1 user A thay đổi công việchay vị trí thì chỉ muốnlấylại quyềntruyxuấtcủaA mà không muốnlấylại các quyềntruyxuấtmà A đãcấp. 18 9
- Thu hồi quyền đệ quy • Thu hồiquyền đệ quy trong System R dựavào nhãn thờigianmỗilầncấp quyềntruyxuấtcho người dùng. •Mộtbiếnthể của cách tiếpcận này là không dựa vào nhãn thờigian, mục đích là để tránh thu hồi quyền dây chuyền. •Khiđó, nếuC bị B thu hồiquyềnvàC lại có quyền tương đương do người khác cấp(mặcdùsauđó) thì quyềnmàC cấp cho người khác vẫn đượcgiữ. 19 Một biến thể của thu hồi quyền đệ quy B FH70 10 30 40 A C 20 60 E 50 G 70 FH B 40 10 60 A C G 20 E 50 20 10
- Thu hồi quyền không dây chuyền (Noncascading revoke) •KhiA thuhồi quyềntruyxuấttrênB thìtấtcả quyềntruyxuấtmàB đãcấp cho chủ thể khác đượcthaybằng A đãcấpchonhững chủ thể này. 21 Thu hồi quyền không dây chuyền Chú ý: •BởivìB đượccấp quyềntruyxuấttrênđốitượng từ nhiềuchủ thể (khác A), nên không phảitấtcả các quyềnmàB cấp đềuthaybằng A cấp. Và A đượcxem là ngườicấp thay cho B khi B sử dụng quyềnA đã cấp cho mình cấp cho những chủ thể khác. •A sẽ là ngườicấp các quyềnmàB đãcấp sau khi nhận quyền đótừ A có chỉđịnh WITH GRANT OPTION. Vớinhững quyềnB đã đượccấpbởiC ≠ A, đếnlượtB cấp cho người khác thì B vẫnlàngườicấp các quyền này. 22 11
- Thu hồi quyền không dây chuyền 80 L M A 40 20 50 B H 30 I 60 70 N 80 50 L M A 20 70 B H 30 I 60 70 N 23 Thu hồi quyền không dây chuyền 80 L M A 40 20 50 B H 30 I 60 70 N 80 L M A 40 20 50 B H 70 30 I 70 N 24 12
- Thu hồi quyền không dây chuyền •Lưu ý rằng với quyền mà H cấp cho L, sau khi thu hồi quyền, không được thay I như là người cấp vì quyền này được cấp trước khi I cấp quyền cho H. 25 View và sự phân quyền dựa trên nội dung • Trong các RDBMS, view là một cơ chế thường được dùng để hỗ trợ việc điều khiển truy cập dựa trên nội dung • Dùng các vị từ (predicate) để giới hạn nội dung dữ liệu cần cấp quyền. •Chỉ những bộ của quan hệ thỏa mãn vị từ được xem là các đối tượng để cấp quyền. 26 13
- View và sự phân quyền dựa trên nội dung •Việc điều khiển truy cập dựa trên nội dung trong các RDBMS được thực hiện như sau: – Định nghĩa 1 view dùng các vị từ để chọn ra các dòng dữ liệu muốn cấp cho chủ thể S. –Cấp cho S các quyền trên view. 27 View và sự phân quyền dựa trên nội dung •Vídụ: giả sử ta muốn cấp quyền cho user B truy cập chỉ những nhân viên có lương ít hơn 20000: – CREATE VIEW V_NHANVIEN AS SELECT * FROM NHANVIEN WHERE LUONG < 20000; - GRANT Select ON V_NHANVIEN TO B; 28 14
- Các bướcxử lý truy vấn •Parsing • Catalog lookup • Authorization checking • View Composition –Truy vấn trên view sẽ được chuyển thành truy vấn trên bảng cơ sở thông qua bước này. –Kết quả sẽ dựa trên vị từ của câu truy vấn và vị từ định nghĩa nên view. B: SELECT * FROM V_NHANVIEN WHERE CONGVIEC = ‘Lap trinh vien’; Câu truy vấn sau bước view composition: SELECT * FROM NHANVIEN WHERE LUONG < 20000 AND CONGVIEC = ‘Lap trinh vien’; • Query optimization 29 Nhậnxét •Vìviệckiểm tra quyền đượcthựchiệntrướcbướcview composition nên quyền đượckiểmtrasẽ dựatrênview chứ không dựatrêncácbảng cơ sở dùng để định nghĩaview. •View hữu ích khi cấpquyền trên các cột–chỉ cầntạoview gồm các cộtmàtamuốncấp quyền. •View cònhữu ích trong việccấpquyềntrêndữ liệuthống kê (dữ liệusinhratừ các hàm AVG, SUM, ) •Chủ thể truy cậpcóthể cấp quyềntruyxuấthay thuhồitrên view tương tự như trên bảng dữ liệu. •Người dùng muốntạo View thì phải có quyền Select trên bảng dữ liệu. •NếungườitạoView bị thu hồi quyền (hay cấpquyền) trên bảng thì cũng bị thu hồi quyền(hay cấpquyền ) trên View, và thu hồi những người dùng khác đượcngườinàycấp quyền. 30 15
- View và cấp quyền dựa trên nội dung •Người tạo view: view definer. •Quyền mà view definer có trên view phụ thuộc vào: –Ngữ nghĩa của view hay các quan hệ cơ sở dùng để tạo nên view. –Quyền mà view definer có trên các bảng cơ sở. •Quyền alter và index không thể áp dụng cho view, nên view definer không bao giờ có quyền này trên view. A: CREATE VIEW V1 (MANV, TONGTIEN) AS SELECT MANV, LUONG+THUONG FROM NHANVIEN WHERE CONGVIEC = ‘Lap trinh vien’ Thao tác update không được định nghĩa trên trường TONGTIEN của view nên A sẽ không thể có quyền update trên field này. 31 Phân quyền trên view • Để xác định quyền mà view definer có trên view, hệ thống phải: –Tìm giao tập quyền mà view definer có trên các quan hệ cơ sở với tập quyền ứng với các thao tác có thể thực hiện trên view. 32 16
- Quyền trên view – ví dụ • Xét quan hệ NHANVIEN và giả sử A là người tạo nên quan hệ NHANVIEN A: GRANT Select, Insert, Update ON NHANVIEN to D; D: CREATE VIEW V1 AS SELECT MANV, LUONG FROM NHANVIEN; D: CREATE VIEW V2 (MANV, LUONG_NAM) AS SELECT MANV, LUONG*12 FROM NHANVIEN; •D cóthể thực hiện tất cả các quyền trên V1 như là các quyền mà D có trên quan hệ NHANVIEN, đólà Select, Insert, Update. • Tuy nhiên, D chỉ có thể thực hiện trên V2 quyền Select và Update trên cột MANV. 33 Quyền trên view – ví dụ • Hoàn toàn có thể cấp quyền trên view. –Quyền mà user có thể cấp là những quyền mà user có with grant option trên các quan hệ cơ sở. –Vídụ: user D không thể cấp bất cứ quyền gì trên view V1 và view V2 mà D đã định nghĩa vì D không được chỉ định with grant option khi D được cấp quyền. 34 17
- Quyền trên view – ví dụ • Xét các câu lệnh sau: – A: GRANT Select ON NHANVIEN TO D WITH GRANT OPTION; – A: GRANT Update, Insert ON NHANVIEN TO D; – D: CREATE VIEW V4 AS SELECT MANV, LUONG FROM NHANVIEN; Quyền của D trên V4 sẽ là: - Select with Grant Option; - Update, Insert without Grant Option; 35 DAC – Quyềnkhẳng định & Phủđịnh • System R và hầuhết các HQT dùng chính sách đóng. –Với chính sách đóng, thiếu quyềntruyxuất đồng nghĩavớiviệc không có quyềntruyxuất. •Khichủ thể truy xuất đến1 đốitượng dữ liệu, HT kiểmtra trong danh sách quyềnmàchủ thểđượctruyxuất, nếu không có thì truy xuấtbị từ chối. –Hạnchế: Việcthiếu quyềntruyxuất không ngăncấmchủ thể sẽ nhận quyềnnàytừ chủ thể khác. –Vídụ: x không đượcquyềntruyxuấttrênđốitượng o, nhưng trong trường hợphệ thống sử dụng chính sách phân chia quyềnquảntrị thì chủ thể có quyềncấp quyềntruyxuấttrêno vô tình cấp quyềnchox. •Ngườitađã đưaraquyềnphủđịnh để giải quyếtvấn đề ràng buộc này. 36 18
- DAC – Quyềnkhẳng định & Phủđịnh •Quyềnkhẳng định: danh sách quyềntruyxuất đượcsử dụng. •Quyềnphủđịnh: danh sách quyềntruyxuất không đượcsử dụng. • Tuy nhiên sử dụng Quyềnkhẳng định và Quyềnphủ định thì gây nên xung đột. Ví dụ: A có quyền WRITE trên bảng NHANVIEN. A không được READ trên PHONGBAN. A không được WRITE trên thuộc tính LUONG của NHANVIEN. •Thường ngườitagiải quyết xung độtbằng cách ưu tiên quyềnphủđịnh. 37 DAC – Quyềnkhẳng định & Phủđịnh •Quyềnphủđịnh đượcthựchiệnnhư là chặn quyền. •Khichủ thể bị gán quyềnphủđịnh trên đốitượng thì quyềnkhẳng định trên đốitượng mà họ có trước đóbị chặnlại. •Nếusaunàychủ thểđượcrútquyềnphủđịnh thì họ có thể sử dụng lại quyềnkhẳng định củamìnhtrước đó. – Ưu điểm: •Thứ nhấtnếuvôtìnhgánquyềnphủđịnh cho người dùng thì có thể thu hồilại. •Thứ hai là có thể chặnquyềntruycậpcủachủ thể trong mộtthời gian bằng cách gán quyềnphủđịnh và sau đóthuhồilại. 38 19
- Câu lệnh DENY • DENY {ALL [PRIVILEGES] | permission[, n]} { [(column[, n])] ON { table | view} | ON {table | view} [( column[, n])] | {procedure | extended_procedure} } TO security_account Ví dụ: DENY SELECT, INSERT, UPDATE ON NHANVIEN TO A, B 39 Thu hồi quyền đãcấphoặcquyền đãcấm (Revoking Granted and Denied Permissions) • Dùng câu lệnh REVOKE: – Ta có thể thu hồilạiquyềnkhẳng định (quyền đãcấp dùng lệnh GRANT) – Ta có thể thu hồilạiquyềnphủđịnh (quyền đãcấm dùng câu lệnh DENY) • Câu lệnh REVOKE giống lệnh DENY ở chỗ không cho thựchiện điềugìđó. • Câu lệnh REVOKE khác lệnh DENY ở chỗ REVOKE sẽ thu lạiquyền đãcấp, còn DENY sẽ cấmmộtchủ thể (hoặc 1 vai trò) thựchiệnmột quyềngìđó trong tương lai. 40 20
- REVOKE • REVOKE { ALL | statement [ , n ] } FROM security_account [ , n ] • VD: REVOKE CREATE TABLE, CREATE DEFAULT FROM Mary, John 41 DAC - Ràng buộcngữ cảnh •Thựctế, người dùng chỉđượcphéptruycậpdữ liệu trong 1 khoảng thờigiannhất định . •Cầnphảicómộtcơ chế hỗ trợ việctruyxuất trong khoảng thời gian cho trước. –Vídụ: cơ chế chỉ chophépnhững ngườilàmviệcbánthời gian chỉđượcphéptruycậpdữ liệu vào khoảng từ 9am đến 1pm từ ngày 1/1/98. • Trong hầuhết các hệ quảntrị cơ sở dữ liệu chính sách này thường triển khai ở chương trình ứng dụng. –Hạnchế: khi xác nhận và thay đổi chính sách điều khiểntruy cập, không bảo đảmrằng chính sách này thựcthi. •Môhìnhđiều khiểntruycậpdựavàothờigianđược đề xuất để giải quyếtvấn đề này. 42 21
- DAC - Ràng buộcngữ cảnh •Thờigianhiệulực: –Mỗiquyềntruyxuất đềucókhoảng thờigianhiệulực. –Khihếtthờigianhiệulực thì quyềntruyxuấttựđộng bị thu hồi mà không cầnngườiquảntrị thu hồi. • Chu kỳ sử dụng quyềntruyxuất: –Quyềntruyxuấttheochukỳ có thể là quyềnkhẳng định hay quyềnphủ định. Nếu trong cùng một khoảng thờigianmàngười dùng vừacóquyền khẳng định vừacóquyềnphủđịnh trên cùng một đốitượng và cùng phương thứctruycậpthìưu tiên cho quyềnphủđịnh. •Cơ chế suy diễndựa vào quy tắcsuydiễn –Quytắc suy diễnbiểuthị ràng buộccủa các quyềntruyxuấttheothờigian. –Quytắc cho phép suy ra quyềntruyxuấtmớidựasự tồntại hay không tồn tạicủaquyềntruyxuất khác trong khoảng thờigianxácđịnh. –Bằng cách sử dụng quy tắcsuydiễn đã đáp ứng đượcyêucầubảovệ dữ liệumộtcáchngắngọnvàrõràng. –Vídụ: Nếuhaingười dùng làm chung mộtdự án thì phải cùng quyềntruy xuất trên các đốitượng. 43 DAC - Ràng buộcngữ cảnh •Quyềntruyxuất được định nghĩalàmộtbộ gồm5 thuộc tính auth = (s, o, m, pn, g). Trong đó: – s (chủ thể), g (người gán) U (danh sách người dùng). – m ∈ M (phương thứctruycập). – o ∈ O(đốitượng). – pn ∈ {+ , -}(quyềnkhẳng định, quyềnphủđịnh). • Ví dụ: (B,o1, read, +, C) : C gán quyềnchoB cóthể read đốitượng o1. (B, o1, write, -, C) : C không cho phép B được quyền write trên đốitượng o1. 44 22
- DAC - Ràng buộcngữ cảnh •Quyềntruyxuất theo chu kỳ là bộ ba ([begin,end], P, auth). Trong đó: - begin là ngày bắt đầu. - end là ngày kếtthúcvàlớnhơnngàybắt đầuhay cóthể là . - P là biểu thức chu kỳ. - auth là quyền truy xuất. •Quyền truy xuất theo chu kỳ thể hiện quyền truy xuất có hiệu lực trong chu kỳ P với ngày sử dụng quyền lớn hơn hay bằng tb (ngày bắt đầu) và nhỏ hơn hay bằng te (ngày kết thúc). Ví dụ 2: A1= ([1/1/94, ], Mondays, (A, o1, read, +, B)) quyền truy xuất này được B gán, thể hiện A có quyền read trên đối tượng o1 vào các ngày thứ hai bắt đầu từ ngày 1/1/94. 45 DAC - Ràng buộcngữ cảnh •Khi sử dụng quyền phủ định thì có thể dẫn đến hiện tượng xung đột . •Vídụ: –Giả sử rằng có thêm quyền truy xuất A2 = ([1/1/95, ], Working-days, (A, o1, read, -, B)) được gán cùng với quyền truy xuất A1= ([1/1/94, ], Mondays, (A, o1, read, +, B)). – Lúc này bắt đầu từ ngày 1/1/95 thì A vừa có quyền phủ định vừa có quyền khẳng định trên cùng đối tượng o1 và cùng phương thức read. –Hiện tượng xung đột được giải quyết bằng cách ưu tiên quyền phủ định. –Do đó trong khoảng thời gian [1/1/94, 12/31/94 ] thì A vẫn có quyền read trên đối tượng o1 vào ngày thứ hai, tuy nhiên từ ngày 1/1/95 thì A không được quyền read trên đối tượng này vào các ngày làm việc kể cả thứ hai. 46 23
- DAC - Ràng buộcngữ cảnh •Quytắc suy diễn được định nghĩalàbộ ba ([begin, end], P, A A ) Trong đó: – begin là ngày bắt đầu. – end là ngày kết thúc và lớnhơnngàybắt đầuhay cóthể là . – P là biểu thức chu kỳ, – A là quyền truy xuất. – A là biểu thức Bool của các quyền truy xuất. – OP là một trong các toán tử WHENEVER, ASLONGAS, UPON. •Ngữ nghĩacủatừng toán tử trong quy tắcsuydiễn: ([begin, end], P, A WHENEVER A ) : quyềntruyxuấtA cóhiệulựcvàothời điểmt ∈ chu kỳ P và t ∈ [ tb, te] khi A có hiệulực. •Vídụ: A1 = ([1/1/95,1/1/96], Working-days, (M, o1, read, B)) R1= ([1/1/95,], Summer-time, (S, o1, read, +, Bob) WHENEVER (M, o1, read, +, B)). ÆS chỉđược read trên đốitượng o1 vào thời điểm mùa hè, từ ngày 1/1/95 khi M được read trên đốitượng này. 47 DAC - Nhậnxét • Ưu điểm: – DAC linh động trong chính sách nên đượchầuhết các HQT CSDL ứng dụng. •Khuyết điểm: – Không thểđiều khiển được dòng thông tin (information flow control) để có thể chống lạitấn công dạng Trojan Horse. 48 24
- • RBAC (Role based Access Control) –Hầuhết các HQT CSDL đềuhỗ trợ RBAC. – RBAC có thể dùng kếthợpvớiDAC hoặcMAC hoặc được dùng độclập. – Đasố các HQT CSDL chỉ hỗ trợ RBAC đơngiản (flat RBAC). 49 Vai trò và nhóm •Mứccơ bản, vai trò có thểđượcxemtương đương như nhóm. –Một đặc quyềncóthểđược gán cho một hay nhiều nhóm hoặcmột hay nhiều vai trò, và một nhóm hay vai trò thì đượckếthợpvớimột hay nhiều đặc quyền. –Việcgánmộtngười dùng cho một nhóm hay mộtvaitròcho phép người dùng thựcthinhững đặc quyềncủa nhóm hay vai trò đó. – Điểm khác nhau chính giữa nhóm và vai trò đó là nhóm thì coi nhưđặctrưng mộttậphợpngười dùng và không là tập hợp quyềnhạn. Mộtvaitròthìmộtmặtlàtậphợpngười dùng và mộtmặtlàtậphợp quyềnhạn. Vai trò là đốitượng trung gian để mang hai tậphợpnàylạivới nhau. 50 25
- RBAC • Đượcápdụng vào đầunhững năm 1970s. •Kháiniệm chính của RBAC là những quyềnhạn được liên kếtvớinhững vai trò. •Khisố lượng chủ thể và đốitượng lớn Æ số lượng quyềnhạncóthể trở nên vô cùng lớn. •Nếungười dùng có nhu cầucao, số lượng cấpvàthuhồi quyềndiễnrathường xuyên. •Với RBAC thì có thể giớihạntrước các mối quan hệ vai trò – quyềnhạn, làm cho việc phân công ngườidùngđếncácvaitròđượcxácđịnh trướcdễ dàng hơn. • Không có RBAC sẽ khó khănchoviệcxácđịnh quyềnhạnnàođược quy định đếnngườidùngnào. •Những ngườidùngđượcchỉđịnh những vai trò thích hợp. Điềunàylàmđơn giản cho việcquảnlíquyềnhạn. • Trong mộttổ chức, những chứcnăng công việc khác nhau được phân thành những vai trò và người dùng đượcchỉđịnh vai trò dựa vào trách nhiệmvànăng lựccủahọ. 51 RBAC – Các mô hình • Mô hình RBAC gồm 4 mô hình: RBAC0 , RBAC1 , RBAC2 , RBAC3. – RBAC0 là nềntảng. – RBAC1 thêm vào khái niệmkế thừacủahệ thống phân cấp vai trò. Vai trò có thể kế thừaquyềnhạntừ vai trò khác. – RBAC2 thêm vào các ràng buộc. – RBAC3 là tổng hợpcủa 3 mô hình. 52 26
- RBAC – Các mô hình • Môhìnhnềntảng RBAC0 thì ở dưới cùng, nó là yêu cầutốithiểuchobấtkỳ hệ thốngnàocóhỗ trợ RBAC. • MôhìnhRBAC1 , RBAC2 được phát triểntừ mô hình RBAC0 nhưng có thêm các điểm đặctrưng cho từng mô hình. – RBAC1 thêm vào khái niệmcủahệ thống phân cấpvaitrò (các trạng thái trong đóvaitròcóthể thừakế quyềnhạntừ vai trò khác). – RBAC2 thêm vào các ràng buộc(ápdụng ràng buộc để có thể thừanhậncấuhìnhcủacácthànhphần khác nhau của RBAC). RBAC1 , RBAC2 không liên quan nhau. • RBAC3 là mô hình tổng hợpcủa ba mô hình RBAC0 , RBAC1 và RBAC2. 53 Ví dụ 54 27
- Ví dụ 55 Ví dụ 56 28
- MAC • MAC (Mandatory Access Control) 57 MAC • Điềukhiểntruyxuấtdựatrênsự phân lớpchủ thể truy xuấtvàđốitượng dữ liệu. •MAC được dùng trong môi trường cầntínhchất an ninh cao: như chính phủ, quân đội, •MAC được ORACLE cài đặt. 58 29
- MAC • Đốitượng dữ liệu (Object): tables, views, tuples. •Chủ thể truy cập (Subject): users, user programs. • Security class (or level, or labels) – Top Secret (TS), Secret (S), Confidential (C), Unclassified (U), where TS > S > C > U •Mỗichủ thể và mỗi đốitượng đượcxếpvàomột class. – No read – up: Chủ thể S có thểĐọc đốitượng O nếu Class(S) >= Class(O). – No write – down: Chủ thể S có thể Ghi đốitượng O nếu class(S) <= Class (O). • Tuy nhiên, thựctế các hệ thống không cho phép write up, mà chỉ cho phép write cùng mức. Hãy kiểmtrađiều này trên Oracle? 59 MAC Subjects Objects TS writes writes TS writes writes S S reads reads C C reads U reads Information flow Information U 60 30
- MAC – Nhậnxét • Nguyên lý về đơn vị dữ liệu của đối tượng bảo mật. –Làtoànbộ CSDL, hay tập tin, ở các thuộctínhhay từng item. • Không có kỹ thuật tự động cho việc gán nhãn bảo mật. •Nhiều người cùng truy cập tại một thời điểm. – Vì áp dụng chính sách dòng thông tin nên những người có mức bảo mật cao hơn bị hạn chế ghi xuống các hạng mục dữ liệu có sự phân loại thấp hơn. Ví dụ có chủ thể s1 và s2 có nhãn(s1)>nhãn(s2), mục dữ liệu d với nhãn(d) = nhãn(s2), và luật thương mại cho rằng để ghi dữ liệu lên d của s2 cần sự chấp thuận của s1. Điều này thì không thích hợp cho các ứng dụng thương mại của công nghệ CSDL MLS. 61 MAC •MAC cònđượcgọilàđiềukhiểntruycập đa cấp (Multilevel security – MLS), ứng dụng trên CSDL quan hệ, có CSDL quan hệđacấp (Multilevel Relational Model - MLR). •Hệ thống quảnlýdữ liệu đáp ứng các thuộc tính củaviệcbảomật đacấp đượcthiếtkế dựatrên mô hình nềntảng là Bell và LaPadula. 62 31
- MLR • Trong mô hình dữ liệu đacấp, những mụcdữ liệu và chủ thể có lớptruycậpriêngcủa chúng (hay các mức), ví dụ TS(Top Secret), S(Secret), U(Unclassified) v.v gồmsự phân loạivàsự chophépsử dụng thông tin bí mật(clearance). •Chủ thể khi truy cậpbị giớihạnbởinhững điều khiểntruycậpbắtbuộc, là “no read up, no write down”, theo mô hình của Bell và LaPadula. 63 MLR •Một quan hệđacấp đượcmôtả bởi hai thành phần: • R(A1,C1, ., An,Cn, TC) trong đó: – Ai là mộtthuộc tính trong miềnDi. –Cilàmộtthuộc tính phân loại cho Ai; miềncủanólàmộttậphợpcủa lớptruycậpmàcóthểđượckếthợpvớigiátrị củaAi. –TC làthuộc tính phân loạicủabộ. (TC=TUPLE-CLASS), là lớptruy cậplớnnhấttrongcácci. •Thuộctínhphânloại không chấpnhậngiátrị rỗng. Name CName Dept# CDept# Salary CDept# TC A Low Dept1 Low 100K Low Low B High Dept2 High 200K High High S Low Dept1 Low 150K High High 64 32
- MLR –Thể hiện quan hệ tạilớpc chứatấtcả dữ liệumàchủ thể tạilớpc thấy được. Do đó, nó chứatất cả dữ liệu mà các lớptruycập ≤ c. –Tấtcả các phầntử vớilớptruycậpcaohơnc, hoặc không thể so sánh đượcthìđược che giấubởi giá trị rỗng. Name CName Dept# CDept# Salary CDept# TC Bob Low Dept1 Low 100K Low Low Sam Low Dept1 Low null Low Low Low instance Name CName Dept# CDept# Salary CDept# TC Bob Low Dept1 Low 100K Low Low Ann High Dept2 High 200K High High Sam Low Dept1 Low 150K High High High instance 65 MLR • Các điềukiệnbắtbuộc: –Quanhệđacấpphảithỏa mãn các điềukiệnsau: •Vớimỗibộ trong mộtquanhệđacấp, các thuộctínhcủa khóa chính phảicócùnglớptruycập. •Vớimỗibộ trong mộtquanhệđacấp, lớptruycậpkếthợpvớimột thuộc tính không phảilàkhóaphảilớnhơnhoặcbằng lớptruycập của khóa chính. – Các khóa và đathể hiện: • Trong mô hình quan hệ chuẩn, mỗibộđượcxácđịnh duy nhấtbởi khóa củanó. •Khikếthợpvớilớptruycập, có thể có đồng thời các bộ vớigiátrị như nhau tạicácthuộctínhkhóanhưng vớisự phân loại khác nhau, hiệntượng này đượcgọilàđathể hiện. 66 33
- MLR – Đathể hiện: • Đathể hiệnxảyratheohaitrạng thái sau: – Đathể hiệnvôhình: Khi mộtngườisử dụng ở mứcthấpchèndữ liệuvàomộtfield màđãchứadữ liệutạimức cao hơnhay mức không thể so sánh được. – Đathể hiệnhữuhình: Khi mộtngườisử dụng ở mức cao chèn dữ liệuvàomộtfield màđãchứadữ liệutạimứcthấphơn. Name CName Dept# CDept# Salary CDept# TC A Low Dept1 Low 100K Low Low B High Dept2 High 200K High High S Low Dept1 Low 150K High High B Low Dept1 Low 100K Low Low Các bộ khóa là “B” là đa thể hiện 67 MLR • Đathể hiệnvôhình: –Giả sử mộtngườisử dụng ở mứcthấpyêucầuchènmộtbộ với khóa chính giống nhau tạimộtbộ tồntại ở mức cao hơn; DBMS có ba lựachọn: 1. Thông báo cho người dùng rằng mộtbộ với khóa chính giống nhau đãtồntại ở mứcbảomật cao và từ chốichènvào. 2. Thay thế bộ tồntại ở mức cao hơnvớibộ mới được chèn ở mứcthấphơn. 3. Chèn bộ mới ở mứcthấphơn mà không thay đổibộ tồntại ở mức cao hơn(tứclà thựcthểđathể hiện). •Chọn2) chophépngườisử dụng ở mứcthấpghiđèdữ liệu mà anh ta không nhìn thấyvàvìvậylàmmất đi tính toàn vẹn. •Chọn3) làmộtlựachọnhợp lý; vì tầm quan trọng củanólàgiớithiệumộtthực thểđathể hiện. 68 34
- MLR • Đathể hiệnhữu hình: –Giả sử mộtngườisử dụng ở mứccaoyêucầuchènmộtbộ với khóa chính giống nhau tạimộtbộ tồntại ở mứcthấp hơn; DBMS có ba lựachọn: 1. Thông báo cho ngườisử dụng rằng mộtbộ với khóa chính tồntại giống nhau và từ chốichènvào. 2. Thay thế bộ tồntại ở mứcthấphơnvớibộ mới đượcchènở mức cao hơn. 3. Chèn bộ mới ở mức cao hơn mà không thay đổibộ tồntại ở mức thấphơn(tứclàthựcthểđathể hiện). •Chọn3) làmộtlựachọnhợplý; vìtầm quan trọng củanólàgiớithiệumộtthựcthểđathể hiện. 69 MLR •Gồm5 ràngbuộc: – Entity integrity (tính toàn vẹnthựcthể) – Polyintantiation integrity (tính toàn vẹn đathể hiện), – Data-borrow integrity (tính toàn vẹndữ liệu-mượn), – Foreign key integrity (tính toàn vẹn khóa ngoại) – Referential integrity (tính toàn vẹnquanhệ) • Và 5 câu lệnh (insert, delete, select, update, UPLEVEL) thao tác trên quan hệđacấp. • Tham khảo: Ravi Sandhu, Fang Chen, The multilevel Relational (MLR) data Model, ACM, 1998. 70 35
- •Hếtchương 3. 71 36



