8/25/2017<br />
<br />
Nội dung<br />
1.<br />
2.<br />
3.<br />
4.<br />
5.<br />
6.<br />
7.<br />
8.<br />
9.<br />
<br />
Chương 9.<br />
An toàn dữ liệu<br />
GV: Lê Thị Minh Nguyện<br />
Email: nguyenltm@huflit.edu.vn<br />
<br />
Khái niệm<br />
Phân loại sự cố<br />
Các cơ chế an toàn dữ liệu<br />
Kiểm soát quyền truy cập CSDL<br />
Phân quyền<br />
Quản lý quyền người dùng<br />
Quản lý phân quyền<br />
Khung nhìn (view) như các cơ chế bảo vệ<br />
Mã hóa dữ liệu<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
1. Khái niệm<br />
<br />
2<br />
<br />
3. Các cơ chế an toàn dữ liệu<br />
<br />
• An toàn dữ liệu: nhằm chống lại sự xâm nhập trái phép từ bên<br />
trong và bên ngoài hệ thống. Các tác nhân tác động từ bên ngoài<br />
gây hư hỏng hệ quản trị cơ sở dữ liệu, sai lệch, mất mát dữ liệu,<br />
cấu trúc dữ liệu,…<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
3<br />
<br />
3.1. Cơ chế chứng thực<br />
3.2. Cơ chế phân quyền<br />
3.3. Cơ chế mã hóa<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
4<br />
<br />
1<br />
<br />
8/25/2017<br />
<br />
3.1. Cơ chế chứng thực<br />
<br />
3.1. Cơ chế chứng thực<br />
<br />
• Hai chế độ chứng thực<br />
<br />
• Sửa đổi chứng thực<br />
<br />
• Mixed security Mode: Kết nối với<br />
SQL server bằng cách dùng<br />
Windows Authentication hoặc SQL<br />
server Authentication<br />
• Windows authentication mode:<br />
Chỉ có thể kết nối với SQL server<br />
bằng Windows Authentication<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
5<br />
<br />
3.2. Cơ chế phân quyền<br />
<br />
6<br />
<br />
3.3. Cơ chế mã hóa<br />
• Mã hóa những dữ liệu nhạy cảm như: ???<br />
• Các kỹ thuật mã hóa<br />
<br />
1. Quyền chứng thực<br />
<br />
•<br />
•<br />
•<br />
•<br />
<br />
2. Quyền người sử dụng sử dụng 1 hoặc nhiều CSDL<br />
3. Các quyền cụ thể sử dụng bảo vệ CSDL<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
7<br />
<br />
Mã hóa bằng mật khẩu<br />
Mã hóa đối xứng<br />
Mã hóa bất đối xứng<br />
Mã hóa chứng nhận<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
8<br />
<br />
2<br />
<br />
8/25/2017<br />
<br />
4. Kiểm soát quyền truy cập CSDL<br />
<br />
4. Kiểm soát quyền truy cập CSDL (tt)<br />
<br />
Xét cơ sở dữ liệu bán hang gồm các table PhongBan,<br />
SanPham, DonHang, CTDonHang, KhachHang, ChiNhanh và<br />
bảng NhanVien(MaNV, HoLot,<br />
TenNV, NgayVaoLam,<br />
MaNQL, MaPB, Luong, HoaHong). Khi đó, mỗi phát biểu sau<br />
chỉ ra một mức độ truy cập tới CSDL trên và có thể được<br />
trao cho một nhóm user:<br />
<br />
(1)User được phép truy xuất không điều kiện tới toàn bộ CSDL và<br />
thực hiện bất kỳ thao tác nào trên CSDL đó.<br />
(2)User không được phép truy xuất tới bất kỳ bộ phận nào của CSDL<br />
(3)User có thể đọc một bộ phận của CSDL nhưng không được thay<br />
đổi nội dung của bộ phận đó.<br />
(4) User có thể đọc đúng một bộ trong bảng NhanVien nhưng không<br />
được sửa đổi bộ này.<br />
(5)User có thể đọc đúng một bộ trong bảng NhanVien và sửa đổi<br />
nhưng không phải tất cả giá trị của bộ này<br />
(6)User có thể đọc các thuộc tính MaNV, TenNV, MaPB nhưng trong<br />
mỗi bộ chỉ được sửa giá trị của các thuộc tính MaPB<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
9<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
4. Kiểm soát quyền truy cập CSDL (tt)<br />
<br />
4. Kiểm soát quyền truy cập CSDL (tt)<br />
<br />
(7) User có thể áp dụng các phép toán thống kê cho thuộc tính<br />
Luong (như tính lương trung bình của từng phòng ban) nhưng<br />
không được đọc hay sửa đổi các giá trị cá biệt.<br />
(8) User có thể đọc các thuộc tính MaNV, Luong, HoaHong và<br />
trong mỗi bộ có thể sửa giá trị của thuộc tính HoaHong của<br />
nhân viên nếu và chỉ nếu người đó là trưởng phòng của phòng<br />
đó.<br />
(9) User có thể bổ sung thêm nhân viên vào một phòng ban nào<br />
đó hay xóa nhân viên khỏi một phòng nào đó.<br />
<br />
User có thể được cấp một số quyền truy cập sau:<br />
• Quyền đọc dữ liệu<br />
• Quyền thêm dữ liệu<br />
• Quyền sửa dữ liệu<br />
• Quyền xóa dữ liệu<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
11<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
10<br />
<br />
12<br />
<br />
3<br />
<br />
8/25/2017<br />
<br />
5. Phân quyền (Cấp quyền cho người dùng)<br />
<br />
Bước 1. Tạo tài khoản đăng nhập<br />
<br />
Bước 1. Tạo tài khoản đăng nhập<br />
<br />
• Cách 1:<br />
create login tên_login with password = 'nhập_mật_khẩu'<br />
<br />
Bước 2. Tạo người dùng<br />
Bước 3. Cấp quyền cho người dùng<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
• Cách 2:<br />
sp_addlogin 'tên_login','mật_khẩu'<br />
<br />
13<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
Bước 2. Tạo người dùng<br />
<br />
Bước 3. Cấp quyền cho người dùng<br />
<br />
• Cách 1:<br />
create user tên_user for login tên_login<br />
<br />
grant danh_sách_quyền on tên_bảng to tên_user<br />
[with grant option]<br />
Tuỳ chọn [with grant option] được sử dụng để cho phép người<br />
dùng được phép cấp lại những quyền của mình cho người dùng<br />
khác.<br />
<br />
• Cách 2:<br />
sp_adduser 'tên_login','tên_user'<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
14<br />
<br />
15<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
16<br />
<br />
4<br />
<br />
8/25/2017<br />
<br />
5. Phân quyền (tt)<br />
<br />
6. Quản lý quyền người dùng<br />
<br />
• Tình huống: Cấp quyền xem và thêm dữ liệu trên bảng<br />
MatHang cho người dùng huynhsuhuynh.<br />
• Các bước thực hiện:<br />
• Bước 1: Tạo tài khoản đăng nhập<br />
create login huynhsuhuynh with password = ‘abc123’<br />
• Bước 2: Tạo người dùng<br />
create user huynhsuhuynh for login huynhsuhuynh<br />
• Bước 3: Cấp quyền<br />
grant select,insert on MatHang to huynhsuhuynh<br />
<br />
• Sau khi cấp Login account để truy cập vào SQL Server bạn<br />
cần cấp cho Login account này quyền là một user truy cập<br />
một/ nhiều Database.<br />
• SQL Server lưu các user của Database trong table<br />
sysusers.<br />
• Một Login account có thể trở thành user của nhiều<br />
Database với những quyền hạn và mang nhiều user name<br />
khác nhau. Mặc định user name trùng tên với Login<br />
account.<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
17<br />
<br />
6. Quản lý quyền người dùng (tt)<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
18<br />
<br />
7. Quản lý phân quyền<br />
• Kiểm soát user có thể làm được gì trên database bằng sử dụng:<br />
<br />
• Hai User đặc biệt:<br />
<br />
• Các Database role<br />
• Cấp quyền cho user thao tác trên object và statement<br />
<br />
• dbo: một user có tất cả các quyền trên Database.<br />
• guest user: Một Login account truy xuất đến một instance của<br />
<br />
SQL Server, nhưng không có user account để truy xuất 1<br />
Database cụ thể, thì có thể được truy xuất đến Database như<br />
một người khách (guest user)<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
19<br />
<br />
• Các cơ chế cấp quyền:<br />
• Dùng login account được tạo sẵn bởi hệ thống và được gán role<br />
default như: sa được gán sysadmin<br />
• Chỉ định 1 login account là user của một Database: mặc định có<br />
quyền thuộc public database role.<br />
• Sử dụng role: Sysadmin bao trùm db_ower<br />
• Sử dụng các lệnh cấp quyền cho user thao tác trên object và<br />
statement như grant, deny, revoke<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
20<br />
<br />
5<br />
<br />