Bảo mật là vấn đề chung cho cả hệ CSDL và những hệ thống khác. Bảo mật trong hệ CSDL là
- Ngăn chặn các truy cập không được phép;
- Hạn chế tối đa các sai sót của người dùng;
- Đảm bảo thông tin không bị mất hoặc bị thay đổi ngoài ý muốn;
- Không tiết lộ nội dung dữ liệu cũng như chương trình xử lí.
Các giải pháp chủ yếu cho bảo mật hệ thống gồm có chính sách và ý thức, phân quyền truy cập và nhận dạng người dùng, mã hoá thông tin và nén dữ liệu, lưu biên bản.
1. Chính sách và ý thức
Việc bảo mật có thể thực hiện bằng các giải pháp kĩ thuật cả phần cứng lẫn phần mềm. Tuy nhiên hiệu quả việc bảo mật phụ thuộc rất nhiều vào các chủ trương, chính sách của chủ sở hữu thông tin và ý thức của người dùng.
- Ở cấp quốc gia, hiệu quả bảo mật phụ thuộc vào sự quan tâm của Chính phủ trong việc ban hành các chủ trương, chính sách, điều luật quy định của Nhà nước về bảo mật. Trong các tổ chức, người đứng đầu cần có các quy định cụ thể, cung cấp tài chính, nguồn lực,... cho việc bảo vệ an toàn thông tin của đơn vị mình.
- Người phân tích, thiết kế và người quản trị CSDL phải có các giải pháp tốt về phần cứng và phần mềm thích hợp để bảo mật thông tin, bảo vệ hệ thống.
- Người dùng cần có ý thức coi thông tin là một tài nguyên quan trọng, cần có trách nhiệm cao, thực hiện tốt các quy trình, quy phạm do người quản trị hệ thống yêu cầu, tự giác thực hiện các điều khoản do pháp luật quy định.
2. Phân quyền truy cập và nhận dạng người dùng
Các hệ QTCSDL đều có cơ chế cho phép nhiều người cùng khai thác CSDL, phục vụ nhiều mục đích rất đa dạng. Tuỳ theo vai trò khác nhau của người dùng mà họ được cấp quyền khác nhau để khai thác CSDL.
Ví dụ, một số hệ quản lí học tập và giảng dạy của nhà trường cho phép phụ huynh truy cập để biết kết quả học tập của con em mình. Mỗi phụ huynh chỉ có quyền xem điểm của con em mình hoặc của khối con em mình học. Đây là quyền truy cập hạn chế nhất (mức thấp nhất). Các thầy cô giáo trong trường có quyền truy cập cao hơn: xem kết quả và mọi thông tin khác của bất kì học sinh nào trong trường. Người quản lí học tập có quyền nhập điểm, cập nhật các thông tin khác trong CSDL.
Bảng phân quyền truy cập cũng là dữ liệu của CSDL, được tổ chức và xây dựng như những dữ liệu khác. Điểm khác biệt duy nhất là nó được quản lí chặt chẽ, không giới thiệu công khai và chỉ có những người quản trị hệ thống mới có quyền truy cập, bổ sung, sửa đổi. Mỗi bản ghi của bảng phân quyền xác định quyền của một nhóm người sử dụng từng loại dữ liệu của CSDL. Các quyền đó thường là đọc (Đ), sửa (S), bổ sung (B), xoá (X), không được truy cập (K).
Giả sử có năm nhóm người dùng CSDL nói trên: phụ huynh học sinh khối 10 (K10), phụ huynh học sinh khối 11 (K11), phụ huynh học sinh khối 12 (K12), giáo viên, người quản trị.
Bảng phân quyền truy cập có thể có dạng sau (để ngắn gọn, ở đây không nêu cụ thể các trường lưu trữ điểm mà chỉ nói chung là "Các điểm số"):
Bảng phân quyền truy cập
Mã HS | Các điểm số | Các thông tin khác | |
K10 | Đ | Đ | K |
K11 | Đ | Đ | K |
K12 | Đ | Đ | K |
Giáo viên | Đ | Đ | Đ |
Người quản trị | ĐSBX | ĐSBX | ĐSBX |
Có thể xem việc mô tả khung nhìn khác nhau cho người dùng khác nhau cũng là một cách phân quyền truy cập CSDL. Do vậy, việc định nghĩa khung nhìn góp phần tạo một cơ chế bảo vệ CSDL.
Khi có người truy cập CSDL, điều quan trọng là hệ QTCSDL phải "nhận dạng" được người dùng, tức là phải xác minh được người truy cập thực sự đúng là người đã được phân quyền. Đảm bảo được điều đó nói chung là rất khó khăn. Một trong những giải pháp thường được dùng là sử dụng mật khẩu, mỗi người dùng có một mật khẩu và chỉ người đó và hệ thống được biết mật khẩu đó.
Ngoài mật khẩu còn có một khái niệm ngày nay đã trở nên quen thuộc là chữ kí điện tử. Chữ kí điện tử là công cụ để hệ thống nhận dạng người truy cập hoặc khẳng định dữ liệu nhận được thực sự là của ai. Chữ kí điện tử có thể là chuỗi bit, xâu kí tự, âm thanh hoặc hình ảnh đặc trưng cho một người dùng và chỉ có người đó mới có thể cung cấp. Ngoài ra, người ta còn dùng phương pháp nhận dạng dấu vân tay, nhận dạng con người hoặc nhận dạng giọng nói để xác minh người truy cập có đúng là người dùng đã đăng kí với hệ thống hay không.
Người quản trị hệ CSDL cần cung cấp:
- Bảng phân quyền truy cập cho hệ QTCSDL;
- Phương tiện cho người dùng để hệ QTCSDL nhận biết đúng được họ.
Người dùng muốn truy cập vào hệ thống cần khai báo:
- Tên người dùng
- Mật khẩu.
Dựa vào hai thông tin này, hệ QTCSDL xác minh để cho phép hoặc từ chối quyền truy cập CSDL (chẳng hạn khai báo đúng tên người dùng nhưng không đúng mật khẩu của người dùng đó).
Chú ý:
- Đối với nhóm người có quyền truy cập cao thì cơ chế nhận dạng có thể phức tạp hơn.
- Hệ QTCSDL cung cấp cho người dùng cách thay đổi mật khẩu. Do đó người dùng nên sử dụng khả năng này để định kì thay đổi mật khẩu, tăng cường khả năng bảo vệ mật khẩu.
3. Mã hoá thông tin và nén dữ liệu
Các thông tin quan trọng và nhạy cảm thường được lưu trữ dưới dạng mã hoá để giảm khả năng rò rỉ. Có nhiều cách mã hoá khác nhau. Ở lớp 10 ta đã làm quen một cách để bảo vệ thông tin là mã hoá theo quy tắc vòng tròn, thay mỗi kí tự bằng một kí tự khác, cách kí tự đó một số vị trí xác định trong bảng chữ cái. Dưới đây ta xét thêm một cách mã hoá khác là nén dữ liệu để giảm dung lượng bộ nhớ lưu trữ dữ liệu đó.
Mã hoá độ dài loạt là một cách nén dữ liệu khi trong tệp dữ liệu có các kí tự được lặp lại liên tiếp. Xét dãy BBBBBBBBAAAAAAAAAAACCCCCC có ba dãy con, dãy con đầu là kí tự B lặp lại 8 lần, dãy con thứ hai là kí tự A lặp lại 11 lần và dãy con thứ ba là kí tự C lặp lại 6 lần. Ta có thể mã hoá dãy kí tự có tính chất như vậy bằng cách thay thế mỗi dãy con bằng duy nhất một kí tự với số lần lặp lại của nó. Chẳng hạn, mã của dãy trên sẽ là 8B11A6C.
Ngoài mục đích giảm dung lượng lưu trữ, nén dữ liệu cũng góp phần tăng cường tính bảo mật của dữ liệu. Khi có dữ liệu dạng nén, cần biết quy tắc nén mới có dữ liệu gốc được.
Chú ý: Các bản sao dữ liệu thường được mã hoá và nén bằng các chương trình riêng.
4. Lưu biên bản
Ngoài các giải pháp nêu trên, người ta còn tổ chức lưu biên bản hệ thống. Thông thường, biên bản hệ thống cho biết:
- Số lần truy cập vào hệ thống, vào từng thành phần của hệ thống, vào từng yêu cầu tra cứu,...
- Thông tin về một số lần cập nhật cuối cùng: nội dung cập nhật, người thực hiện, thời điểm cập nhật,...
Biên bản hệ thống hỗ trợ đáng kể cho việc khôi phục hệ thống khi có sự cố kĩ thuật, đồng thời cung cấp thông tin cho phép đánh giá mức độ quan tâm của người dùng đối với hệ thống nói chung và với từng thành phần của hệ thống nói riêng. Dựa trên biên bản này, người quản trị có thể phát hiện những truy cập không bình thường (ví dụ ai đó quá thường xuyên quan tâm đến một số loại dữ liệu nào đó vào một số thời điểm nhất định), từ đó có những biện pháp phòng ngừa thích hợp.
Có nhiều yếu tố của hệ thống bảo vệ có thể thay đổi trong quá trình khai thác hệ CSDL, ví dụ như mật khẩu của người dùng, phương pháp mã hoá thông tin,... Những yếu tố này được gọi là các tham số bảo vệ.
Để nâng cao hiệu quả bảo mật, các tham số của hệ thống bảo vệ phải thường xuyên được thay đổi.
Cần lưu ý là hiện nay các giải pháp cả phần cứng lẫn phần mềm chưa đảm bảo hệ thống được bảo vệ an toàn tuyệt đối.
CÂU HỎI VÀ BÀI TẬP
1. Hãy nêu các giải pháp bảo mật chủ yếu.
2. Với vị trí người dùng, em có thể làm gì để bảo vệ hệ thống khi khai thác CSDL?
3. Biên bản hệ thống dùng để làm gì?
4. Cho ví dụ để giải thích lí do cản phải thường xuyên thay đổi tham số của hệ thống bảo vệ.