1.1. Mục đích, yêu cầu
Qua bài toán quản lí một cơ sở kinh doanh, học sinh cần đạt được các yêu cầu sau:
- Hiểu thêm khái niệm và tầm quan trọng của bảo mật CSDL;
- Biết một số cách thông dụng bảo mật CSDL;
- Có thái độ đúng đắn trong việc sử dụng và bảo mật CSDL.
1.2. Nội dung
Bài 1
Một cửa hàng bán buôn hàng điện tử thường xuyên nhận hàng từ một số công ti và bán lại cho các khách hàng. Hàng nhập và xuất trực tiếp từ kho của cửa hàng (để bài toán đơn giản, hạn chế chỉ có một thủ kho kiêm người giao hàng). Cửa hàng này đã xây dựng một CSDL BANHANG gồm các bảng sau:
Bảng HANG (quản lí các loại hàng lưu thông trong cửa hàng)
MaHang | TenHang | DonVi | GiaMua | HangSX | GiaBan |
(Mã hàng) | (Tên hàng) | (Đơn vị tính) | (Giá mua 1 đơn vị) | (Hãng sản xuất) | (Giá bán 1 đơn vị) |
(1) | (2) | (3) | (4) | (5) | (6) |
Bảng 1. Bảng HANG
Bảng KHACH (quản lí các bạn hàng đã đăng nhập mua hàng tại cửa hàng)
MaKhach | HoTen | DiaChiKh | DienThoaiKh | TaiKhoanKh |
(Mã Khách) | (Họ và tên ) | (Địa chỉ) | (Số điện thoại) | (Tài khoản) |
(1) | (2) | (3) | (4) | (5) |
Bảng 2. Bảng KHACH
Bảng CONGTI (quản lí các công ti cung cấp hàng)
MaCT | TenCT | DiaChiCT | DienThoaiCT | TaiKhoanCT |
(Mã Công ti) | (Tên Công ti) | (Địa chỉ Công ti) | (Số điện thoại Công ti) | (Tài khoản Công ti) |
(1) | (2) | (3) | (4) | (5) |
Bảng 3. Bảng CONGTI
Bảng PHIEUNHAP (quản lí các phiếu nhập hàng vào kho)
SoPhieuNhap | MaCT | MaHang | SoLuong | NgayNhap |
(Số phiếu nhập) | (Mã Công ti) | (Mã hàng) | (Số lượng) | (Ngày nhập) |
(1) | (2) | (3) | (4) | (5) |
Bảng 4. Bảng PHIEUNHAP
Bảng PHIEUXUAT (quản lí các phiếu xuất hàng ra khỏi kho giao cho khách)
SoPhieuXuat | NgayNhap | MaKhach | MaHang | SoLuong | GiaBan |
(Số phiếu xuất) | (Ngày xuất) | (Mã Khách hàng) | (Mã hàng) | (Số lượng) | (Giá bán 1 đơn vị) |
(1) | (2) | (3) | (4) | (5) | (6) |
Bảng 5. Bảng PHIEUXUAT
Các đối tượng sử dụng chương trình quản lí CSDL BANHANG là:
- Khách hàng;
- Các công ti cung cấp hàng cho cửa hàng;
- Thủ kho (kiêm người giao hàng);
- Kế toán;
- Người quản lí cửa hàng.
Theo em, mỗi đối tượng trên sẽ yêu cầu chương trình có những chức năng gì?
Gợi ý làm bài:
- Khách hàng được biết tên, số lượng các mặt hàng còn trong cửa hàng, một số thông tin cần thiết về mặt hàng.
- Các công ti cần biết tình hình đã cung cấp hàng cho cửa hàng này.
- Thủ kho kiêm người giao hàng biết được tình hình hàng nhập xuất và tồn kho.
- Kế toán biết được tình hình thu, chi.
- Người quản lí cửa hàng biết được mọi thông tin, trong đó đặc biệt quan tâm về tình hình xuất/nhập từng loại mặt hàng, tình hình lãi/lỗ của từng mặt hàng.
Bài 2
Giả sử chương trình có các chức năng:
- Khách hàng được biết tên, số lượng các mặt hàng còn trong cửa hàng, một số thông tin cần thiết về mặt hàng.
- Các công ti cần biết tình hình đã cung cấp hàng cho cửa hàng này.
- Thủ kho kiêm người giao hàng biết được tình hình hàng nhập xuất và tồn kho.
- Kế toán biết được tình hình thu, chi.
- Người quản lí cửa hàng biết được mọi thông tin, trong đó đặc biệt quan tâm về tình hình xuất/nhập từng loại mặt hàng, tình hình lãi/lỗ của từng mặt hàng.
- Bảo mật CSDL.
Nếu chức năng bảo mật CSDL được thực hiện bằng bảng phân quyền, thì từng đối tượng nêu trên có thể được trao quyền như thế nào?
Trong bảng phân quyền kí hiệu: đọc (Đ), sửa (S), bổ sung (B), xóa (X), không được truy cập (K). Trong một số bảng dữ liệu, đối tượng không được quyền Đ, S, B, X đối với một số cột thì ghi K kèm theo chỉ số cột. Ví dụ, quyền của đối tượng khách hàng đối với bảng HANG nếu ghi Đ(K6) thì được hiểu khách hàng có quyền đọc các cột của bảng dữ liệu HANG trừ cột 6 (là cột giá mua mặt hàng từ công ti cung cấp hàng cho cửa hàng, khách hàng không được biết giá mua mà chỉ được biết giá bán mặt hàng này).
Dưới đây là một bảng thể hiện phân quyền, theo em có những điểm nào chưa phù hợp, vì sao?
HANG | KHACH | CONGTI | PHIEUNHAP | PHIEUXUAT | |
Khách hàng | Đ(K6) | K | K | K | K |
Công ti | K | K | K | K | K |
Thủ kho+Giao hàng | Đ(K6) | Đ | Đ | Đ | Đ |
Kế toán | Đ | Đ | Đ | Đ, B, S, X | Đ, B, S, X |
Quản lí | Đ, B, S, X | Đ, B, S, X | Đ, B, S, X | Đ | Đ |
Bảng 6. Bảng thể hiện phân quyền các đối tượng
Gợi ý làm bài:
- Khách hàng: chỉ đọc.
- Thủ kho: chỉ đọc.
- Kế toán: chỉ đọc.
- Quản lý: đọc, bổ sung, sửa, xóa.
Bài 3
Khi xây dựng CSDL BANHANG như trên, người ta thường tạo biểu mẫu được mở ngay khi mở CSDL (giả sử là biểu mẫu Trangdau), với các nút lệnh yêu cầu người dùng khai báo định danh (tên, mật khẩu) và xác định quyền truy cập. Sau khi khai báo, biểu mẫu tiếp theo được mở (giả sử là OPENCSDL) sẽ hiển thị một danh sách các chức năng tương ứng với bộ “định danh và quyền truy cập” được phép sử dụng. Người dùng có thể tiếp tục chọn trong các chức năng này làm xuất hiện các cửa sổ thích hợp cho truy cập phần dữ liệu với các mức phân quyền mà người lập trình đã dành cho.
Hãy cho biết, vì sao người ta làm như vậy.
Gợi ý làm bài:
- Khi phân quyền thì người đăng nhập vào chỉ có thể thực hiện được các chức năng.
- Khi đăng nhập vào chỉ có các chức năng đúng với quyền truy cập của mình được hiển thị vì làm như thế để cho người truy cập biết mức độ có thể thực hiện trong chương tình. Khi đó ngăn chặn được sự truy cập không được phép của người dùng, làm tăng mức độ an toàn và bảo mật thông tin hơn.