Tải bản đầy đủ (.pdf) (9 trang)

Bài giảng hệ quản trị cơ sở dữ liệu chương 9 lê thị minh nguyện

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.28 MB, 9 trang )

8/25/2017

Nội dung
1.
2.
3.
4.
5.
6.
7.
8.
9.

Chương 9.
An toàn dữ liệu
GV: Lê Thị Minh Nguyện
Email:

Khái niệm
Phân loại sự cố
Các cơ chế an toàn dữ liệu
Kiểm soát quyền truy cập CSDL
Phân quyền
Quản lý quyền người dùng
Quản lý phân quyền
Khung nhìn (view) như các cơ chế bảo vệ
Mã hóa dữ liệu
Hệ quản trị Cơ sở dữ liệu

1. Khái niệm


2

3. Các cơ chế an tồn dữ liệu

• An toàn dữ liệu: nhằm chố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,…

Hệ quản trị Cơ sở dữ liệu

3

3.1. Cơ chế chứng thực
3.2. Cơ chế phân quyền
3.3. Cơ chế mã hóa

Hệ quản trị Cơ sở dữ liệu

4

1


8/25/2017

3.1. Cơ chế chứng thực

3.1. Cơ chế chứng thực


• Hai chế độ chứng thực

• Sửa đổi 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.2. Cơ chế phân quyền

6

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

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

Hệ quản trị Cơ sở dữ liệu

Hệ quản trị Cơ sở dữ liệu

7

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

Hệ quản trị Cơ sở dữ liệu

8

2


8/25/2017

4. Kiểm soát quyền truy cập CSDL

4. Kiểm soát quyền truy cập CSDL (tt)

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:

(1)User được phép truy xuất khơng điều kiện tới tồ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

9

Hệ quản trị Cơ sở dữ liệu

4. Kiểm soát quyền truy cập CSDL (tt)

4. Kiểm soát quyền truy cập CSDL (tt)

(7) User có thể áp dụng các phép tố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
đó hay xóa nhân viên khỏi một phịng nào đó.

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

Hệ quản trị Cơ sở dữ liệu

11

Hệ quản trị Cơ sở dữ liệu

10

12

3


8/25/2017

5. 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 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'

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

• Cách 2:
sp_addlogin 'tên_login','mật_khẩu'

13

Hệ quản trị Cơ sở dữ liệu

Bước 2. Tạo người dùng

Bước 3. Cấp quyền cho người dùng

• Cách 1:
create user tên_user for login tên_login

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.

• Cách 2:
sp_adduser 'tên_login','tên_user'

Hệ quản trị Cơ sở dữ liệu

14

15

Hệ quản trị Cơ sở dữ liệu

16

4


8/25/2017

5. Phân quyền (tt)

6. Quản lý quyền người dùng

• Tình huống: Cấp quyền xem và thêm dữ liệu trên bảng
MatHang cho người dùng huynhsuhuynh.
• Các bước thực hiện:
• Bước 1: Tạo tài khoản đăng nhập
create login huynhsuhuynh with password = ‘abc123’

• Bước 2: Tạo người dùng
create user huynhsuhuynh for login huynhsuhuynh
• Bước 3: Cấp quyền
grant select,insert on MatHang to huynhsuhuynh

• 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ột user 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
Database với những quyền hạn và mang nhiề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

17

6. Quản lý quyền người dùng (tt)

Hệ quản trị Cơ sở dữ liệu

18

7. Quản lý phân quyền
• Kiểm sốt user có thể làm được gì trên database bằng sử dụng:

• Hai User đặc biệt:


• Các Database role
• Cấp quyền cho user thao tác trên object và statement

• 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ư
một người khách (guest user)

Hệ quản trị Cơ sở dữ liệu

19

• 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.
• Sử dụng role: Sysadmin bao trùm db_ower
• Sử dụng các lệnh cấp quyền cho user thao tác trên object và
statement như grant, deny, revoke
Hệ quản trị Cơ sở dữ liệu

20

5


8/25/2017


7. Quản lý phân quyền (tt)

7. 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)

GRANT { { ALL | permission [ ,...n ] } [
(column_name [ ,...n ] ) ] ON { table | view |
stored_procedure |extended_procedure |
user_defined_function }} TO user_name [ ,...n ]
Hệ quản trị Cơ sở dữ liệu

22

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 ]

GRANT { ALL | statement [ ,...n ] }
TO user_name [,...n ]

Hệ quản trị Cơ sở dữ liệu

• Object permission (Đối
tượng): Kiểm sốt một User /
role có thể thực thi hành động
gì trên một object cụ thể trong
Database.

7. Quản lý phân quyền (tt)

• Statement (Phát biểu): kiểm số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

• 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:

23

Hệ quản trị Cơ sở dữ liệu

24

6


8/25/2017

7. Quản lý phân quyền (tt)

Cấp quyền cho Role (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 theo nhó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.

• 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'

Cấp quyền cho nhóm (Role)
Hệ quản trị Cơ sở dữ liệu

25

Cấp quyền cho Role (tt)

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

Hệ quản trị Cơ sở dữ liệu

Hệ quản trị Cơ sở dữ liệu

27

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
Create User DangLH For Login DangLH
Bước 5: Thêm usser DangLH vào nhóm xemdulieu
Sp_addRoleMember 'xemdulieu', 'DangLH'
Hệ quản trị Cơ sở dữ liệu

28

7


8/25/2017

8. Khung nhìn (view) như các cơ chế bảo vệ

8. Khung nhìn (view) như các cơ chế bảo vệ (tt)

• Bảng là một quan hệ được tổ chức lưu trữ vật lý trong CSDL
• Khung nhìn cũng là một quan hệ
• Khơng được lưu trữ vật lý (bảng ảo)
• Khơng chứa dữ liệu
• Đối tượng bên trong nó chỉ lưu trữ duy nhất một câu lệnh SELECT
• Các dữ liệu được lấy từ bảng cơ sở
• Có thể thêm, xóa, sửa được trong bảng ảo

• Cú pháp:

CREATE VIEW <Tên_Bang_ao>[(tên_các_cột)]
[WITH ENCRYPTION] //mã hoá nội dung câu lệnh
AS
Câu lệnh SELECT
[WITH CHECK OPTION]// ngăn cản các thao tác
cập nhật dữ liệu (thêm, sửa) tác động trực tiếp vào bảng
ảo không thoả điều kiện trong mệnh đề WHERE.
Xem lại nội dung câu lệnh SELECT bên trong View
EXEC Sp_helptext <tên view>

Hệ quản trị Cơ sở dữ liệu

29

9. Mã hóa dữ liệu

Hệ quản trị Cơ sở dữ liệu

30

9. Mã hóa dữ liệu (tt)
USE AdventureWorks2012; GO -- Create a column in which to store the
encrypted data.
ALTER TABLE Sales.CreditCard ADD CardNumber_EncryptedbyPassphrase
varbinary(256);
GO -- First get the passphrase from the user.
DECLARE @PassphraseEnteredByUser nvarchar(128);
SET @PassphraseEnteredByUser = 'A little learning is a dangerous
thing!’;
-- Update the record for the user's credit card. -- In this case,

the record is number 3681. UPDATE Sales.CreditCard
SET CardNumber_EncryptedbyPassphrase =
EncryptByPassPhrase(@PassphraseEnteredByUser , CardNumber, 1,
CONVERT( varbinary, CreditCardID))
WHERE CreditCardID = '3681';

• Mã khóa mật khẩu
EncryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'cleartext' | @cleartext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )

Hệ quản trị Cơ sở dữ liệu

31

Hệ quản trị Cơ sở dữ liệu

32

8


8/25/2017

9. Mã hóa dữ liệu (tt)

9. Mã hóa dữ liệu (tt)

• Giải mã


USE AdventureWorks2012; -- Get the pass phrase from the user.
DECLARE @PassphraseEnteredByUser nvarchar(128); SET
@PassphraseEnteredByUser = 'A little learning is a dangerous
thing!'; -- Decrypt the encrypted record.

DecryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )

SELECT CardNumber, CardNumber_EncryptedbyPassphrase AS 'Encrypted
card number', CONVERT(nvarchar,
DecryptByPassphrase(@PassphraseEnteredByUser,
CardNumber_EncryptedbyPassphrase, 1 , CONVERT(varbinary,
CreditCardID))) AS 'Decrypted card number' FROM Sales.CreditCard
WHERE CreditCardID = '3681'

Hệ quản trị Cơ sở dữ liệu

33

Hệ quản trị Cơ sở dữ liệu

35

Hệ quản trị Cơ sở dữ liệu

34


9



×