1/30/2012 Nội dung • An tồn liệu – Xác minh người sử dụng – Kiểm tra quyền truy nhập người sử dụng – Các Cá câu â lệnh lệ h an toàn t liệu liệ t SQL An toàn toàn vẹn liệu Ng ễn Hồng Phương Nguyễn phuongnh@soict.hut.edu.vn http://is.hut.edu.vn/~phuongnh • Tồn vẹn liệu – Các ràng buộc toàn vẹn SQL – Điều khiển tương tranh Bộ môn Hệ thống thông tin Viện Công nghệ thông tin Truyền thông Đại học Bách Khoa Hà Nội An toàn liệu Các quyền truy nhập người sử dụng • Định nghĩa: Tính an tồn liệu bảo vệ liệu sở liệu chống lại truy nhập, sửa đổi hay phá hủy bất hợp pháp • Người sử dụng hợp pháp người sử dụng ụ g ợ cấp p p phép, p, ợ ủy y q quyền y Ngược g ợ lại người sử dụng bất hợp pháp • Để đảm bảo tính an tồn cho sở liệu, cần có chế để quản lý người dùng cho hợp lý • Những nhóm người dùng khác hệ CSDL có quyền sử dụng khác liệu CSDL • Quyền đọc liệu: phép đọc phần hay tồn liệu CSDL • Quyền cập nhật liệu: phép sửa đổi số giá trị khơng xóa liệu CSDL • Quyền xóa liệu: phép xóa liệu CSDL • Quyền bổ sung liệu: phép thêm liệu vào CSDL không phép thay đổi liệu • Quyền tạo dẫn quan hệ CSDL • Quyền thay đổi sơ đồ sở liệu: thêm hay xóa thuộc tính quan hệ CSDL • Quyền loại bỏ quan hệ CSDL • Quyền quản lý tài nguyên: phép thêm quan hệ vào CSDL Trách nhiệm người quản trị hệ thống Xác minh người sử dụng • Để phân biệt người sử dụng hệ CSDL, người quản trị hệ thống phải có trách nhiệm: • Để xác minh người sử dụng, người ta dùng kỹ thuật sau: – Xác định quyền cụ thể mà người sử dụng hay nhóm người sử dụng phép thực hệ hiện, xác định đ h vai trò ò trách h nhiệm hệ ủ ỗ người sử dụng Điều gọi chung Phân quyền người sử dụng – Cung cấp phương tiện cho người sử dụng để hệ thống nhận biết người sử dụng hay gọi Xác minh người sử dụng – Kỹ thuật dùng tài khoản mật khẩu, mật bảo vệ hệ thống cách kỹ – Kỹ thuật sử dụng hàm kiểm tra cho người sử dụng: Hệ thống đưa cho người sử dụng số ngẫu nhiên x, x người sử dụng dùng hàm F tính nhẩm kết đưa kết y = F(x) vào hệ thống Trong lúc đó, hệ thống tính tốn so sánh kết với y Người sử dụng hợp pháp người biết hàm biến đổi F đưa vào giá trị y – Kỹ thuật dùng thẻ điện tử, thẻ thông minh – Kỹ thuật sử dụng nhận dạng tiếng nói, vân tay v v SinhVienZone.com https://fb.com/sinhvienzonevn 1/30/2012 Kiểm tra quyền truy nhập người sử dụng • Mỗi người sử dụng có hồ sơ người quản trị thiết lập hệ thống quản lý, hồ sơ có chi tiết thao tác người sử dụng phép thực hiện: – Phân quyền người sử dụng: Người quản trị hệ thống phải có trách nhiệm xác định khung nhìn để kiểm sốt xem người sử dụng truy nhập phần liệu CSDL có quyền số quyền đọc, thêm, xóa , sửa đổi – Xác định kiểm soát lưu chuyển liệu: Hệ thống phải bảo trì danh sách quyền cách chặt chẽ người sử dụng quyền lan truyền quyền cho người sử dụng khác Các câu lệnh an tồn liệu SQL • Câu lệnh tạo khung nhìn • Câu lệnh phân quyền cho người sử dụng • Câu lệnh thu hồi quyền người sử dụng Câu lệnh tạo khung nhìn Ví dụ câu lệnh tạo khung nhìn • CREATE VIEW [(d/s cột)] AS • Danh sách cột khung nhìn phần khơng bắt buộc Trong trường hợp người sử dụng muốn đặt tên khác cho cột xuất khung nhìn người sử dụng tên cột, liệu cột tương ứng với cột mệnh đề Select câu truy vấn • Cho sở liệu gồm quan hệ: Nhânviên(Id,Họtên,ĐC,Lương,NămBD,Đánhgiá,PhòngCT) Phòng(PId, Tên, ĐC, Điệnthoại, Trưởngphòng) • Câu lệnh tạo khung nhìn cho nhân viên phòng Khoa Học định nghĩa sau: CREATE VIEW NVKH(HọtênNhânviên, Địachỉliênlạc) AS SELECT Họtên,Địachỉ FROM Nhânviên WHERE PhòngCT IN (SELECT PId FROM Phòng WHERE Tên =‘Khoa Học’) 10 Câu lệnh phân quyền cho NSD Câu lệnh phân quyền cho NSD (tiếp) • GRANT ON TO [WITH GRANT OPTION] • : bao gồm hay nhiều thao tác liệt kê đây: • : bảng khung nhìn • : Một người hay nhóm hay danh sách người sử dụng Từ khóa public dùng thay cho người sử dụng • [With Grant Option] Nếu dùng từ khóa câu lệnh phân quyền người dùng xuất có quyền lan truyền quyền vừa tuyên bố cho người dùng khác – Insert: chèn liệu vào CSDL có sẵn khơng thay đổi mục liệu CSDL – Update: sửa đổi liệu khơng xóa liệu – Delete: xóa liệu CSDL – Select : tìm kiếm – Create: tạo lập quan hệ – Alter: Thay đổi cấu trúc quan hệ – Drop: Loại bỏ quan hệ – Read/Write: Đọc Ghi 11 12 SinhVienZone.com https://fb.com/sinhvienzonevn 1/30/2012 Ví dụ câu lệnh phân quyền cho NSD Câu lệnh thu hồi quyền NSD • Trao quyền đọc, ghi, tìm kiếm, sửa đổi liệu cho nhân viên tên Hoa phòng Khoa học khung nhìn vừa tạo lập phần trước GRANT read, read write, write select, select update ON NVKH TO Hoa; • Trao quyền cho trưởng phòng Khoa học – ông HungNC GRANT read, write, select, update, delete ON NVKH TO HungNC WITH GRANT OPTION; 13 • REVOKE ON FROM [RESTRICT/CASCADE] • , , giống iố hư câu lệnh GRANT • Phần [RESTRICT/CASCADE] chế thu hồi với quyền người dùng lan truyền Câu lệnh thu hồi quyền NSD (tiếp) • Nếu Restrict có nghĩa hủy bỏ quyền người có danh sách, quyền lan truyền cho người khác khơng bị thu hồi • Nếu dùng Cascade hủy bỏ quyền người ười t , dù đồ đồng thời kéo theo hủy bỏ quyền mà người dùng luân chuyển cho người khác • Ví dụ: REVOKE update,delete ON NVKH FROM HungNC CASCADE 15 14 Tồn vẹn liệu • Định nghĩa: Tính tồn vẹn liệu bảo vệ liệu CSDL chống lại sửa đổi, phá hủy vơ để đảm bảo tính đắn xác liệu • Các thao tác ảnh hưởng đến tính đắn CSDL thêm, xóa , sửa đổi • Để đảm bảo tính tồn vẹn liệu, cần phải a d t ì ràng trì àng buộc b ộc toàn vẹn ẹn liên kết với quan hệ Các ràng buộc toàn vẹn cung cấp phương tiện để đảm bảo thao tác thực người sử dụng hợp pháp khơng làm tính đắn CSDL • Trong hệ thống đa người dùng, để đảm bảo tồn vẹn liệu, hệ thống phải có trình điều khiển tương tranh để tránh đụng độ thao tác đưa 16 người sử dụng khác thời điểm Các ràng buộc tồn vẹn SQL Ví dụ khẳng định • Các ràng buộc khóa chính, khóa ngoài, kiểm tra miền sử dụng Check đề cập đến nói câu lệnh tạo bảng CSDL • Các Cá khẳng khẳ đị h Là định: ộ vịị từ biểu biể thị hị điều kiện mà CSDL phải luôn thỏa mãn Các khẳng định tạo câu lệnh: CREATE ASSERTION CHECK • Số lượng mặt hàng cung cấp hãng có số nhân viên < 50 phải nhỏ 100: CREATE ASSERTION KĐSốlượng CHECK NOT EXISTS (SELECT * FROM S WHERE numofemps < 50 AND sid IN (SELECT sid FROM SP WHERE quantity >= 100)) 17 18 SinhVienZone.com https://fb.com/sinhvienzonevn 1/30/2012 Các ràng buộc tồn vẹn SQL (tiếp) Ví dụ kích hoạt • Các kích hoạt: Là thao tác thực • Nhânviên(ID,Họtên,Lương,Địachỉ,Ngư ờiquảnlý) • Một nhân viên có lương lương người trưởng phòng, điều kiện phải kiểm tra thêm liệu liệ cách tự động có thay đổi CSDL Kích hoạt chế có ích để báo động thực nhiệm vụ định sẵn điều kiện định thỏa mãn • Kích hoạt định nghĩa để hủy bỏ, kiểm tra thực số kiện coi biện pháp để đảm bảo toàn vẹn liệu DEFINE TRIGGER ThemNV ON INSERT Nhânviên IF Nhânviên.Lương > (SELECT E.Lương FROM Nhânviên AS E WHERE E.ID = Nhânviên.Ngườiquảnlý) THEN ABORT; 19 20 Điều khiển tương tranh Các kỹ thuật điều khiển tương tranh • Trong hệ CSDL đa người dùng, hệ thống cần đưa giải pháp chống đụng độ giao dịch (một dãy thao tác) đưa người dùng ù khác để ể tránh việc ệ đối tượng liệu bị làm tính đắn q trình cập nhật • Kỹ thuật dùng khóa: Khi giao dịch cần liệu xin hệ điều hành khóa phần liệu đó, giao dịch khác phải đợi đến giải phóng khóa sử dụng phần liệu Có thể người ta sử dụng loại khóa khác ví dụ khóa đọc – cho phép nhiều giao dịch đọc lúc, khóa ghi – giao dịch có thời điểm điểm • Kỹ thuật gán nhãn thời gian: Mỗi giao dịch gán nhãn T theo thời gian, giao dịch cần ưu tiên gán nhãn thời gian nhỏ thực trước Kỹ thuật giúp đưa yêu cầu đồng thời thực 21 22 Lời hay ý đẹp "Khi nói thật bạn khơng phải nhớ vừa nói gì, mà bạn khơng b iờ qn ê hữ gìì ì h vừa nói" ói" S.Raybum 23 24 SinhVienZone.com https://fb.com/sinhvienzonevn ... chèn liệu vào CSDL có sẵn khơng thay đổi mục liệu CSDL – Update: sửa đổi liệu khơng xóa liệu – Delete: xóa liệu CSDL – Select : tìm kiếm – Create: tạo lập quan hệ – Alter: Thay đổi cấu trúc quan... CASCADE 15 14 Tồn vẹn liệu • Định nghĩa: Tính tồn vẹn liệu bảo vệ liệu CSDL chống lại sửa đổi, phá hủy vơ để đảm bảo tính đắn xác liệu • Các thao tác ảnh hưởng đến tính đắn CSDL thêm, xóa , sửa... thêm, xóa , sửa đổi • Để đảm bảo tính tồn vẹn liệu, cần phải a d t ì ràng trì àng buộc b ộc toàn vẹn ẹn liên kết với quan hệ Các ràng buộc toàn vẹn cung cấp phương tiện để đảm bảo thao tác thực người