Professional Documents
Culture Documents
1
Security Mechanisms
Bảo mật dữ liệu trong SQL được thực hiện dựa trên
ba khái niệm chính sau đây:
Người dùng cơ sở dữ liệu (Database user):
• Là đối tượng sử dụng cơ sở dữ liệu, thực thi các thao tác
trên cơ sở dữ liệu như tạo bảng, truy xuất dữ liệu,...
• Mỗi một người dùng trong cơ sở dữ liệu được xác định
thông qua tên người dùng (User ID). Một tập nhiều người
dùng có thể được tổ chức trong một nhóm và được gọi là
nhóm người dùng (User Group).
• Chính sách bảo mật cơ sở dữ liệu có thể được áp dụng
cho mỗi người dùng hoặc cho các nhóm người dùng.
2
Security Mechanisms
3
Security Mechanisms
4
Security Mechanisms
Logins
– Login identifiers (Ids) are associated with users when they
connect to Microsoft® SQL Server™ 2008
– Control access to the SQL Server system
Users
– A user identifier (ID) identifies a user within a database
– All permissions and ownership of objects in the database
are controlled by the user account
Roles
– Allow you to collect users into a single unit against which
you can apply permissions
– Permissions are applied automatically when the users
become members of the role
Groups
– SQL Server security can be managed with Windows
5 NT/2008 Groups
Login
6
Kế hoạch phân quyền và bảo mật
Window mode:
– Không phải nhớ nhiều username, password
– Policies của window: thời gian hết hạn, chiều dài tối đa, lưu
giữ history.
– Nhược điểm: chỉ user window mới có thể kết nối đến
sqlserver
Mixed mode:
– Không phân biệt net library
– Hack vào network không có nghĩa là cũng hack vào sql
server
7
Kế hoạch phân quyền và bảo mật
8
QUẢN TRỊ NGƯỜI DÙNG.
10
SERVER ROLE, DATABASE ROLE.
11
SERVER ROLE, DATABASE ROLE.
Database Role.
– Role là đối tượng mà thông qua nó người quản trị có thể
gán quyền khai thác cho người sử dụng. Role do CSDL
quản lý, khi tạo CSDL hệ thống tự đặt một số Role ngầm
định.
12
SERVER ROLE, DATABASE ROLE.
Cú pháp tạo Role
sp_addrole [ @rolename = ] 'role'
[ , [ @ownername = ] 'owner' ]
Ví dụ: Thêm Role có tên Managers:
EXEC sp_addrole 'Managers' Sử dụng câu lệnh
sp_addrole [ @rolename = ] 'role'
[ , [ @ownername = ] 'owner' ]
Ví dụ: Thêm Role có tên Managers:
EXEC sp_addrole 'Managers'.
13
User Roles
15 –
–
SQL Server Enterprise Manager
T_SQL: sp_addrolemember [@rolename =] 'role', [@membername =] 'security_account'
Kế hoạch phân quyền và bảo mật
16
Kế hoạch phân quyền và bảo mật
Cú pháp
GRANT
{ALL [PRIVILEGES] | permission[,...n]}
{
[(column[,...n])] ON {table | view}
| ON {table | view}[(column[,...n])]
| ON {stored_procedure | extended_procedure}
}
TO security_account[,...n]
[WITH GRANT OPTION]
[AS {group | role}]
18
Kế hoạch phân quyền và bảo mật
Trong đó:
ALL [PRIVILEGES] Cấp phát tất cả các quyền cho
người dùng trên đối tượng cơ sở dữ liệu được chỉ
định. Các quyền có thể cấp phát cho người dùng bao
gồm:
•Đối với bảng, khung nhìn, và hàm trả về dữ liệu kiểu bảng:
SELECT, INSERT, DELETE, UPDATE và REFERENCES.
•Đối với cột trong bảng, khung nhìn: SELECT và UPDATE.
•Đối với thủ tục lưu trữ và hàm vô hướng: EXECUTE.
Trong các quyền được đề cập đến ở trên, quyền
REFERENCES được sử dụng nhằm cho phép tạo
khóa ngoài tham chiếu đến bảng cấp phát
19
Kế hoạch phân quyền và bảo mật
20
Kế hoạch phân quyền và bảo mật
21
Kế hoạch phân quyền và bảo mật
Ví dụ:
Cấp phát cho người dùng có tên thuchanh quyền thực
thi các câu lệnh SELECT, INSERT và UPDATE trên
bảng Products
GRANT SELECT,INSERT,UPDATE
ON Products
TO thuchanh
22
Kế hoạch phân quyền và bảo mật
Ví dụ:
Cho phép người dùng thuchanh quyền xem
Productname, unitInstock của bảng Products
GRANT SELECT
(Productname, unitInstock) ON Products
TO thuchanh
hoặc:
GRANT SELECT
ON Products (Productname, unitInstock)
TO thuchanh
23
Kế hoạch phân quyền và bảo mật
Ví dụ:
Với quyền được cấp phát như trên, người dùng
thuchanh có thể thực hiện câu lệnh sau trên bảng
Products
SELECT ProductName, UnitInstock from
Products
Nhưng câu lệnh dưới đây lại không thể thực hiện
được
SELECT * FROM Products
24
Kế hoạch phân quyền và bảo mật
Chú ý:
• Người dùng không có quyền cấp phát những quyền
mà mình được phép cho những người sử dụng
khác.
• Trong một số trường hợp, khi ta cấp phát quyền cho
một người dùng nào đó, ta có thể cho phép người
đó chuyển tiếp quyền cho người dùng khác bằng
cách chỉ định tuỳ chọn WITH GRANT OPTION trong
câu lệnh GRANT.
26
Kế hoạch phân quyền và bảo mật
27
Kế hoạch phân quyền và bảo mật
30
Kế hoạch phân quyền và bảo mật
31
Kế hoạch phân quyền và bảo mật
Cú pháp
33
Kế hoạch phân quyền và bảo mật
Thu hồi quyền đã cấp phát trên cột UnitInstock (chỉ cho
phép xem dữ liệu trên cột ProductName)
REVOKE SELECT
ON Products(UnitInstock)
FROM thuchanh
Chú ý: Khi ta sử dụng câu lệnh REVOKE để thu hồi quyền
trên một đối tượng cơ sở dữ liêu từ một người dùng náo
đó, chỉ những quyền mà ta đã cấp phát trước đó mới
được thu hồi, những quyền mà người dùng này được cho
phép bởi những người dùng khác vẫn còn có hiệu lực.
34
Kế hoạch phân quyền và bảo mật
35
Kế hoạch phân quyền và bảo mật
36
Kế hoạch phân quyền và bảo mật
37
Kế hoạch phân quyền và bảo mật
38
Kế hoạch phân quyền và bảo mật
39
Kế hoạch phân quyền và bảo mật
40
Kế hoạch phân quyền và bảo mật
41
Kế hoạch phân quyền và bảo mật
42
Kế hoạch phân quyền và bảo mật
43
Kế hoạch phân quyền và bảo mật
45
Kế hoạch phân quyền và bảo mật
46
Kế hoạch phân quyền và bảo mật
47
Kế hoạch phân quyền và bảo mật
User Activites
49
Giới thiệu về bảo mật cơ sở dữ liệu
50
Kiểm soát truy cập dữ liệu
51
Kiểm soát truy cập tùy ý
Dựa trên khái niệm quyền truy cập trên các đối
tượng (tables, views) và cơ chế trao quyền cho
user.
Người tạo table hoặc view có toàn quyền trên
table hoặc view đó.
DBMS sẽ kiểm tra user nào được trao và bị thu
hồi quyền và chỉ những yêu cầu từ những user
được trao quyền mới được cho phép
52
GRANT/REVOKE trên Views
54
Mã hóa
55
Phương pháp mã hóa
Symmetric:
– Khóa mã hóa = khóa giải mã
– Tất cả user được phân quyền đều biết được khóa này
– VD: DES, AES
Public-Key
– Mỗi user có 2 khóa
Khóa mã hóa public: chung, tất cả user đều biết
Khóa giải mã: chỉ user biết
– VD: RSA
56
Kiểm soát truy cập bắt buộc
57
Tại sao kiểm soát truy cập bắt buộc?
58
Mô hình Bell-LaPadula
59