An toàn và bảo mật là điều rất quan trọng đối với các hệ quản trị cơ sở dữ liệu nói riêng cũng như các hệ thống khác nói chung. Các cơ sở dữ liệu được tạo lập cho các xí nghiệp thường có nhiều người quản lý, sử dụng. Ví dụ: có 1 hoặc 2 người tạo lập và quản lý cơ sở dữ liệu, có vài người người cập nhật và truy vấn thông tin…Những người sử dụng này không được phép thay đổi cấu trúc và thiết kế của cơ sở dữ liệu. Vì yếu tố quyết định chất lượng của cơ sở dũ liệu là tính toàn vẹn về thông tin nên bảo vệ cơ sở dữ liệu là một trong những vấn đề quan tâm hàng đầu.
Chương này sẽ trình bày một số những biện pháp đơn giản nhưng sẽ giúp ích được khá nhiều cho chúng ta trong yêu cầu bảo vệ cơ sở dữ liệu chống lại sự truy nhập, sửa đổi hay phá huỷ bất hợp pháp và không có căn cứ.
6.1 Không cho hiển thị thanh Menu và cửa sổ Database
Mục đích là để ngăn chặn không cho người khác xâm nhập vào các thành phần của chương trình như bảng (table), truy vấn (query), mẫu biểu (form), báo biểu (report), macro, đơn thể (module).
Khi ta không muốn cho người khác biết điều gì thì tốt nhất là đừng hiển thị nó, dù là ở dạng vô hiệu hóa (làm mờ, disable)
Để làm mất thanh Menu của Access, chúng ta chỉ việc thiết kế một hệ Menu và cài vào mẫu biểu chính nhưđã nói trước đây. Khi mở mẫu biểu chính, hệ Menu này sẽ thay thế thanh Menu của Access.
Để làm mất của sổ Database, ta đưa câu lệnh sau vào thủ tục xử lý sự kiện On_Open của mẫu biểu chính:
DoCmd.RunCommand acCmdWindowHide
Ngoài ra cần tạo macro AutoKeys để chặn bắt và làm vô hiệu hóa các phím mà Access hay dùng để trở về cửa sổ Database và thanh Menu của Access. Các bước như sau:
Bước 1:
Tạo một macro có tên Autoexec tựđộng mở mẫu biểu chính của chương trình. Thiết kế macro này như sau:
Action: OpenForm Các tham số:
Form Name Tên mẫu biểu chính View Form FilterName
Where Condition
DataMode WindowMode Normal
Nếu muốn cài mật khẩu thì cách làm như sau: Macro Autoexec sẽ mở mẫu biểu mật khẩu. Mẫu biểu mật khẩu sẽ có một nút lệnh để kiểm tra mật khẩu, nếu đúng sẽ mở mẫu biểu chính.
Bài giảng Lập trình trong Access
Tạo macro Menu chính. Nếu chương trình không dùng giao diện Menu (chỉ dùng giao diện nút lệnh), thì Menu chính là một menu rỗng, khi đó macro Menu chính được thiết kế như sau:
Action: AddMenu
Các tham số:
Menu Name
Menu Macro Name Tên macro phụ Status Bar Text
Macro phụ chỉđưa vào cho đủ thủ tục, nó sẽ không gây ra bất kỳ hành động nào. Ta thiết kế macro phụ như sau: Action: CancelEvent
Bước 3: Mẫu biểu chính
Khi thiết kế mẫu biểu chính cẩn sử dụng 2 thuộc tính Menu Bả và On Open của mẫu biểu:
Đưa tên của macro Menu chính vào dòng thuộc tính Menu Bar:
Menu Bar: Tên macro Menu chính
Lập hàm xử lý sự kiện On Open của mẫu biểu chính như sau: Private Sub Form_Open(Cancel As Integer)
DoCmd.RunCommand acCmdWindowHide End Sub
Bước 4:
Tạo macro AutoKey để chặn bắt, làm vô hiệu hóa các phím mà Access hay dùng như: F1 phím trợ giúp
F11 trở về cửa sổ Database …. ……
Để làm vô hiệu hóa các phím F1, F2, F3 và các tổ hợp phím Ctrl + F1, Shift + Insert, ta tạo macro Autokeys với nội dung như sau:
Macro Name Action Comment {F1} CancelEvent {F2} CancelEvent {F3} CancelEvent ^{F1} CancelEvent +{INSERT} CancelEvent
Cách viết các phím và tổ hợp phím trong cột Macro Name như sau: Phím hoặc tổ hợp phím Ví dụ cách viết Ctrl + phím chữ hoặc phím số ^A hoặc ^4 Phím chức năng bất kỳ {F1} Ctrl + phím chức năng bất kỳ ^{F1} Shift + phím chức năng bất kỳ +{F1} Insert {Insert} Ctrl + Insert ^{Insert}
Shift + Insert +{Insert}
Ctrl + Delete ^{Delete} hoặc ^{Del} Shift + Delete +{Delete} hoặc +{Del}
Bài giảng Lập trình trong Access
6.2 Đặt mật khẩu bằng chức năng của Access
6.2.1 Cài mật khẩu
Lần lượt thực hiện như sau:
Mở CSDL trong chế độ Exclusive: chọn menu File, mục Open Database, hộp thoại Open sẽ mở ra. Đánh dấu mục Exclusive, sau đó chọn cơ sở dữ liệu (tệp .mdb) cần mở và nhấn nút Open.
Chọn menu Tools, mục Security, mục Set Database Password. Hộp thoại Set Database Password mở ra.
Trong hộp thoại này, ta gõ mật khẩu vào các ô Password và Verify, sau đó nhấn OK. Chú ý phân biệt chữ hoa và chữ thường.
6.2.2 Gỡ bỏ mật khẩu
Phải nhớ mật khẩu để mở cơ sở dữ liệu.
Trong cửa sổ Database chọn menu Tools, chọn mục Security, mục Unset Database Password. Hộp thoại Unset Database Password mở ra.
Gõ mật khẩu đã cài đặt vào ô Password và nhấn OK. Như vậy mật khẩu đã được gỡ bỏ.
Chú ý: Khi ta mở một cơ sở dữ liệu mà chọn mục Exclusive thì ta đã khóa cơ sở dữ liệu đó đối với tất cả những người sử dụng khác trong suốt thời gian mở nó. Mục lựa chọn này rất hữu ích cho những máy tính nối mạng nhưng nó lại không quan trọng đối với người sử dụng máy tính riêng lẻ.
6.2.3 Bảo an cho cơ sở dữ liệu có nhiều người sử dụng
Bảo an trong Access là một công việc phức tạp, dựa trên một hệ thống của các nhóm (group) bao gồm tài khoản của người sử dụng (account) được bảo vệ bằng mật khẩu (password). Theo ngầm định, Access tạo 2 nhóm Admins (nhiều quyền hạn) và Users (ít quyền hạn hơn). Khi chúng ta bắt đầu sử dụng Access, chương trình cho rằng chúng ta là Admin và cho chúng ta đăng nhập vào mà không đòi hỏi password. Ngầm định, Admin được gán cho cả 2 nhóm Admins và Users, không hạn chế quyền cho tới khi cơ sở dữ liệu này được bảo vệ. Quy trình mà chúng ta phải đi qua là:
Sử dụng tính năng Workgroup Administrator để tạo một tập tin chứa các thông tin về nhóm làm việc. Tập tin này sẽ nhận diện các nhóm cùng thành viên của chúng.
Bổ sung một người sử dụng mới cho nhóm Admins.
Xóa người sử dụng Admin ra khỏi nhóm Admins. Admin bây giờ chỉ còn là thành viên của nhóm Users, sau đó, gán một password cho người sử dụng Admin.
Mở lại Access trong tư cách người sử dụng mới.
Tạo một cơ sở dữ liệu mới và xóa đi tất cả quyền hạn của nhóm Users đối với từng loại đối tượng trong cơ sở dữ liệu này.
Nhập các đối tượng từ cơ sở dữ liệu gốc vào cơ sở dữ liệu mới.
Tạo các nhóm và những người sử dụng mới nếu cần thiết, gán cho nhóm và những người sử dụng khác những quyền hạn xác định nhằm mục đích hạn chế khả năng hoạt động của họ.
Chú ý: Tập tin chứa thông tin về nhóm làm việc, các nhóm, các tài khoản người sử dụng hoạt động ở cấp chương trình chứ không phải cấp cơ sở dữ liệu.
a) Tạo nhóm làm việc an toàn (Secure Workgroup) b) Tạo tài khoản người sử dụng
Bài giảng Lập trình trong Access c) Tạo một cơ sở dữ liệu an toàn d) Tạo nhóm làm việc mới
Bài giảng Lập trình trong Access