(7) User có thể áp dụng các phép toán thống kê cho thuộc tính Luong (như tính lương trung bình của từng phòng ban) nhưng không được đọc hay sửa đổi các giá trị cá biệt.. (8) User có thể [r]
Trang 1Chương 9.
An toàn dữ liệu
GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn
Nội dung
1 Khái niệm
2 Phân loại sự cố
3 Các cơ chế an toàn dữ liệu
4 Kiểm soát quyền truy cập CSDL
5 Phân quyền
6 Quản lý quyền người dùng
7 Quản lý phân quyền
8 Khung nhìn (view) như các cơ chế bảo vệ
9 Mã hóa dữ liệu
Hệ quản trị Cơ sở dữ liệu 2
1 Khái niệm
•An toàn dữ liệu: nhằmchống lại sự xâm nhập trái phép từ bên
trong và bên ngoài hệ thống Các tác nhân tác động từ bên ngoài
gây hư hỏng hệ quản trị cơ sở dữ liệu, sai lệch, mất mát dữ liệu,
cấu trúc dữ liệu,…
3 Các cơ chế an toàn dữ liệu
3.1 Cơ chế chứng thực 3.2 Cơ chế phân quyền 3.3 Cơ chế mã hóa
Trang 23.1 Cơ chế chứng thực
• Hai chế độ chứng thực
•Mixed security Mode: Kết nối với
SQL server bằng cách dùng
Windows Authentication hoặc SQL
server Authentication
•Windows authentication mode:
Chỉ có thể kết nối với SQL server
bằng Windows Authentication
Hệ quản trị Cơ sở dữ liệu 5
3.1 Cơ chế chứng thực
• Sửa đổi chứng thực
Hệ quản trị Cơ sở dữ liệu 6
3.2 Cơ chế phân quyền
1 Quyền chứng thực
2 Quyền người sử dụng sử dụng 1 hoặc nhiều CSDL
3 Các quyền cụ thể sử dụng bảo vệ CSDL
3.3 Cơ chế mã hóa
• Mã hóa những dữ liệu nhạy cảm như: ???
• Các kỹ thuật mã hóa
• Mã hóa bằng mật khẩu
• Mã hóa đối xứng
• Mã hóa bất đối xứng
• Mã hóa chứng nhận
Trang 34 Kiểm soát quyền truy cập CSDL
Xét cơ sở dữ liệu bán hang gồm các table PhongBan,
SanPham, DonHang, CTDonHang, KhachHang, ChiNhanh và
bảng NhanVien(MaNV, HoLot, TenNV, NgayVaoLam,
MaNQL, MaPB, Luong, HoaHong).Khi đó, mỗi phát biểu sau
chỉ ra một mức độ truy cập tới CSDL trên và có thể được
trao cho một nhóm user:
Hệ quản trị Cơ sở dữ liệu 9
4 Kiểm soát quyền truy cập CSDL (tt) (1)User được phép truy xuất không điều kiện tới toàn bộ CSDL và thực hiện bất kỳ thao tác nào trên CSDL đó
(2)User không được phép truy xuất tới bất kỳ bộ phận nào của CSDL (3)User có thể đọc một bộ phận của CSDL nhưng không được thay đổi nội dung của bộ phận đó
(4) User có thể đọc đúng một bộ trong bảng NhanVien nhưng không được sửa đổi bộ này
(5)User có thể đọc đúng một bộ trong bảng NhanVien và sửa đổi nhưng không phải tất cả giá trị của bộ này
(6)User có thể đọc các thuộc tính MaNV, TenNV, MaPB nhưng trong mỗi bộ chỉ được sửa giá trị của các thuộc tính MaPB
Hệ quản trị Cơ sở dữ liệu 10
4 Kiểm soát quyền truy cập CSDL (tt)
(7) User có thể áp dụng các phép toán thống kê cho thuộc tính
Luong (như tính lương trung bình của từng phòng ban) nhưng
không được đọc hay sửa đổi các giá trị cá biệt
(8) User có thể đọc các thuộc tính MaNV, Luong, HoaHong và
trong mỗi bộ có thể sửa giá trị của thuộc tính HoaHong của
nhân viên nếu và chỉ nếu người đó là trưởng phòng của phòng
đó
(9) User có thể bổ sung thêm nhân viên vào một phòng ban nào
4 Kiểm soát quyền truy cập CSDL (tt)
User có thể được cấp một số quyền truy cập sau:
• Quyền đọc dữ liệu
• Quyền thêm dữ liệu
• Quyền sửa dữ liệu
• Quyền xóa dữ liệu
Trang 45 Phân quyền (Cấp quyền cho người dùng)
Bước 1 Tạo tài khoản đăng nhập
Bước 2 Tạo người dùng
Bước 3 Cấp quyền cho người dùng
Hệ quản trị Cơ sở dữ liệu 13
Bước 1 Tạo tài khoản đăng nhập
•Cách 1:
create login tên_login with password = 'nhập_mật_khẩu'
•Cách 2:
sp_addlogin 'tên_login','mật_khẩu'
Hệ quản trị Cơ sở dữ liệu 14
Bước 2 Tạo người dùng
• Cách 1:
create user tên_user for login tên_login
• Cách 2:
sp_adduser 'tên_login','tên_user'
Bước 3 Cấp quyền cho người dùng
grant danh_sách_quyền on tên_bảng to tên_user [with grant option]
Tuỳ chọn[with grant option]được sử dụng để cho phép người dùng được phép cấp lại những quyền của mình cho người dùng khác
Trang 55 Phân quyền (tt)
•Tình huống: Cấp quyền xem và thêm dữ liệu trên bảng
MatHang cho người dùnghuynhsuhuynh
•Các bước thực hiện:
•Bước 1: Tạo tài khoản đăng nhập
create loginhuynhsuhuynhwith password = ‘abc123’
•Bước 2: Tạo người dùng
create userhuynhsuhuynhfor loginhuynhsuhuynh
•Bước 3: Cấp quyền
grant select,insert on MatHang to huynhsuhuynh
Hệ quản trị Cơ sở dữ liệu 17
6 Quản lý quyền người dùng
•Sau khi cấp Login account để truy cập vào SQL Server bạn cần cấp cho Login account này quyền là mộtuser truy cập một/ nhiều Database
•SQL Server lưu các user của Database trong table
sysusers
•Một Login account có thể trở thành user của nhiều Databasevới những quyền hạn và mangnhiều user name khác nhau Mặc định user name trùng tên với Login account
Hệ quản trị Cơ sở dữ liệu 18
6 Quản lý quyền người dùng (tt)
•Hai User đặc biệt:
• dbo : một user có tất cả các quyền trên Database.
• guest user: Một Login account truy xuất đến một instance của
SQL Server, nhưng không có user account để truy xuất 1
Database cụ thể, thì có thể được truy xuất đến Database như
7 Quản lý phân quyền
•Kiểm soát user có thể làm được gì trên database bằng sử dụng:
• Các Database role
• Cấp quyền cho user thao tác trên object và statement
•Các cơ chế cấp quyền:
•Dùng login account được tạo sẵn bởi hệ thống và được gán role default như: sa được gán sysadmin
•Chỉ định 1 login account là user của một Database: mặc định có quyền thuộc public database role.
Trang 67 Quản lý phân quyền (tt)
• ROLES:
• Role là một công cụ cho phép cấp quyền cho một nhóm User thay vì thực
hiện trên từng user.
• Có 2 loại Roles:
• Fixed role
• User-defined Database role
• Hoặc có thể phân biệt:
• Role mức server
• Role mức Database
Hệ quản trị Cơ sở dữ liệu 21
7 Quản lý phân quyền (tt)
• Object permission (Đối tượng): Kiểm soát một User / role có thể thực thi hành động
gì trên một object cụ thể trong Database
Hệ quản trị Cơ sở dữ liệu 22
• Quyền cho phép người dùng thực hiện cách hành động trong Database
Có hai loại quyền:
GRANT { { ALL | permission [ , n ] } [ (column_name [ , n ] ) ] ON { table | view | stored_procedure |extended_procedure | user_defined_function }} TO user_name [ , n ]
7 Quản lý phân quyền (tt)
• Statement (Phát biểu): kiểm soát một User/role có thể thực
hiện được lệnh nào sau đây:
• CREATE DATABASE
• CREATE DEFAULT
• CREATE PROCEDURE
• CREATE RULE
• CREATE TABLE
• CREATE VIEW
• BACKUP DATABASE
• BACKUP LOG
GRANT { ALL | statement [ , n ] }
TO user_name [, n ]
7 Quản lý phân quyền (tt)
Lệnh hủy (revoke): Hủy quyền đã cấp grant hay từ chối deny
Revoking Statement Permission :
REVOKE { ALL | statement [ , n ] }
FROM user_name [ , n ] Revoking Object Permission :
REVOKE { { ALL | permission [ , n ] } [ (column_name [ , n ] ) ]
ON { table | view | stored_procedure |extended_procedure | user_defined_function }} {TO | FROM} user_name [ , n ]
Trang 77 Quản lý phân quyền (tt)
•Như vậy thay vì chúng ta cấp quyền cho từng user, người
quản trị có thể cấp quyền theonhóm Và những user thuộc
nhóm quyền nào sẽ có tất cả quyền của nhóm đó Do đó, khi
người quản trị thực hiện thêm bớt quyền sẽ dễ dàng hơn
Hệ quản trị Cơ sở dữ liệu 25
Cấp quyền cho nhóm (Role)
Cấp quyền cho Role (tt)
•Bước 1: Tạo nhóm
Cách 1:
Create Role Tên_Nhóm
Cách 2:
Sp_AddRole 'Tên_Nhóm’
Bước 2: Cấp quyền cho nhóm
Grant Quyền On Bảng To Tên_Nhóm Bước 3: Thêm user vào nhóm
Sp_AddRoleMember 'Tên_Nhóm', 'Tên_User'
Hệ quản trị Cơ sở dữ liệu 26
Cấp quyền cho Role (tt)
• Ví dụ cấp quyền cho nhóm xemdulieu quyền xem dữ liệu cơ sở dữ
liệu QuanLyBanHang Trong nhóm quyền này có một user là
DangLH
Cấp quyền cho Role (tt)
Bước 1: Tạo nhóm quyền Use QuanLyBanHang Create role xemdulieu Bước 2: Cấp quyền cho nhóm Grant select to xemdulieu Bước 3: Tạo login tên DangLH, mật khẩu Abc12345 Create Login DangLH With Password = 'Abc12345’
Bước 4: Tạo user DangLH sử dụng login DangLH Use QuanLyBanHang