MICROSOFT SQL SERVER
BẢO MẬT & PHÂN QUYỀN
GV: Nguyễn Thị Cẩm Hương
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
TẦM QUAN TRỌNG CỦA
BẢO MẬT
• Mục đích chính: bảo vệ dữ liệu
• Bảo mật: các cơng cụ điều khiển việc truy cập dữ liệu
• Rủi ro có thể xảy ra: someone gain unauthorized
access
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
BẢO MẬT TRONG SQL SERVER
• Bảo mật trong SQL Server gồm 3 lớp:
• Login security: kiểm sốt ai có thể log vào SQL Server
• Database access security: kiểm sốt ai có thể truy cập
vào một DB cụ thể trên server
• Permission security: kiểm sốt một user có thể thực hiện
thao tác gì trên DB
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
BẢO MẬT TRONG CSDL
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
LOGIN SECURITY
• Có 2 loại chứng thực:
• Windows Authentication
• Users chỉ cần được cấp account trong Windows server
• SQL Server dựa vào Windows để chứng thực cho user
• Cách kết nối này gọi là kết nối tin tưởng, dựa vào ủy nhiệm
bảo mật của windows
• SQL Server Authentication
• Người quản trị CSDL tạo ra tài khoản và password đăng
nhập của SQL Server.
• Thơng tin đăng nhập được lưu trong bảng sysxlogins của CSDL
master
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
LOGIN SECURITY-CHẾ ĐỘ CHỨNG THỰC
• Mixed Security Mode
• Windows authentication mode
• Thay đổi chế độ chứng thực:
• Launch SQL Server Management Studio.
1. Ơ Object Explorer chọn server.
2. Right-click trên server, chọn Properties.
3. Dưới ‘‘Select a page’’, chọn Security.
4. Mục ‘‘Server authentication,’’ chọn
authentication thích hợp
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
LOGINS
• Windows logins:
• Thích hợp với tài khoản user hay group lưu trữ trong
Aactive Directory hay local Security Accounts Manager
(SAM) database.
• SQL logins:
• Dùng cho các đối tượng khơng có tài khoản windows
• Dựa vào thơng tin lưu trữ và quản lý tài khoản của SQL
Server
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
TẠO LOGINS trong
Management studio
1. Ở Object Explorer, chọn server.
2. Mở thư mục Security.
3. R_Click Logins và chọn ‘‘New Login.’’
4. Tại hộp thoại Login–New , nhập tên login muốn tạo
hoặc click Search button chọn account Windows
5. Nếu tạo SQL Login, chọn ‘‘SQL Server authentication’’
6. Khi chọn ‘‘SQL Server authentication,’’ ta có thể chọn
khơng kiểm tra password policies
7. Chọn CSDL và ngôn ngữ mặc định
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
TẠO LOGINS sử dụng T-SQL
CREATE LOGIN [name] {WITH <options> | FROM <source>}
VD:
CREATE LOGIN Bill WITH PASSWORD = ‘P@ssw0rd’
HASHED
- Hashed values?
SELECT LOGINPROPERTY(’bill’, ‘passwordhash’)
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
Sử dụng CREATE LOGIN
• Tạo mới login cho user có tên TINTIN trên MYPC server:
CREATE LOGIN [MYPC\TIN] from Windows;
• Tạo mới login cho Windows group
CREATE LOGIN [MYPC\Family] from Windows;
• Tạo mới login cho SQL SERVER LOGIN cho user MISA:
CREATE LOGIN MISA
WITH PASSWORD=‘Misa12@34p@ass’;
• Đổi password:
ALTER LOGIN MISA WITH PASSWORD = ‘newpassword’,
CHECK_POLICY=OFF
• Xóa login: DROP LOGIN [MYPC\MISA];
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
LƯU Ý KHI TẠO SQL SERVER LOGIN
• Khơng để trống trường Password hoặc sử dụng các giá
trị “Password”, “Admin”, “Administrator”, “sa”, hay
“sysadmin”
• Khơng sử dụng tên máy, hoặc tên người dùng hiện thời
• Có nhiều hơn 8 kí tự
• Phải chứa ít nhất ba trong số các loại kí tự sau: Chữ cái,
viết hoa, Chữ cái viết thường, kí tự số, Các kí tự đặc
biệt (#, %, &, …)
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
QUYỀN (PERMISSION)
• Các quyền chuẩn của các đối tượng SQL Server
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
VAI TRỊ (ROLES)
• Vai trị: tập các quyền
• Dùng để gán cho một người dùng hoặc nhóm người dùng
• Các vai trị mặc định của SQL Server
• Vai trị Server mặc định (Fixed Server Role)
• Vai trị CSDL mặc định (Fixed Database Role)
• Có quyền định nghĩa thêm các vai trị mới
• Mỗi vai trị được gán một tập quyền. VD:
• Vai trị dbcreator có thể thực thi các câu lệnh:
CREATE/ALTER/DROP DATABASE/RESTORE DATABASE
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
VAI TRỊ SERVER (SERVER ROLES)
• Vai trị Server mặc định bao gồm những người
dùng quản trị Server
Mô tả
Vai trị
sysadmin
Có thể thực hiện mọi thao tác trên server. Theo mặc định,
tất cả thành viên trong nhóm Windows
BUILTIN\Administrators đều là thành viên của vai trị này.
securityadmin
Có thể quản lý ID và mật khẩu đăng nhập cho server, đồng
thời có thể cấp, từ chối và thu hồi quyền trên cơ sở dữ liệu
dbcreator
Có thể tạo, thay đổi, xóa và khơi phục cơ sở dữ liệu.
…
…
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
VAI TRỊ CSDL (Database ROLES)
Vai trị
Mơ tả
Db_owner
Có tất cả các quyền đối với CSDL
Db_accessadmin
Có quyền thêm hoặc xóa một LoginID của CSDL
Db_securityadmin
Có thê quản trị quyền đối tượng, quyền CSDL, Vai trị, các
thành viên của Vai trị
Db_datawriter
Có thể thêm, xóa, cập nhật dữ liệu trên tồn bộ các bảng
trong CSDL
Db_datareader
Có thể truy xuất dữ liệu từ tất cả các bảng trong CSDL
Db_denydatawriter
Khơng thể thêm, xóa, cập nhật dữ liệu trên tồn bộ các
bảng trong CSDL
Db_denydatareader
Khơng thể truy xuất dữ liệu từ tất cả các bảng trong CSDL
Db_backupoperator
Có thể thực hiện sao lưu CSDL và chạy các kiểm tra tính
nhất quán trên CSDL
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
TẠO MỘT LOGIN VỚI
Fixed server role
• sp_addsrvrolemember [ @loginame= ] ‘login’ , [
@rolename = ] ‘role’
--create
USE master
CREATE LOGIN Ted WITH PASSWORD = ‘P@ssw0rd’;
GO
EXEC sp_addsrvrolemember ‘Ted’, ‘securityadmin’;
GO
--drop
USE master
EXEC sp_dropsrvrolemember ‘Ted’, ‘securityadmin’;
GO
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
Database Users
- Tạo mới DB Users trong Management Studio
1. Ở Object Explorer, mở Databases.
2. Chọn CSDL (vd: Adventuresworks)
3. Mở Security.
4. R_Click Users và chọn ‘‘New User.’’
5. Nhập tên user vào User Name box. VD: Carol
6. Nhập tên user (Carol) trong ‘‘Login name’’ box, hoặc
chọn tên login bằng cách click ‘‘...’’ button.
7. Nhập tên nhánh CSDL( Sales) trong ‘‘Default
schema’’ box.
8. Click OK.
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
Tạo mới DB Users bằng T-SQL
CREATE USER name [{{FOR | FROM} source | WITHOUT
LOGIN]
[WITH DEFAULT_SCHEMA = schema_name]
- Sửa
ALTER USER <Tên user> WITH
[NAME = <Tên user mới>]
[, DEFAULT_SCHEMA = <Tên schema>]
- Xóa
DROP USER <Tên user>
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
Ví dụ
USE master;
CREATE LOGIN [AughtEight\Bob] FROM WINDOWS;
USE AdventureWorks2008;
CREATE USER BillyBob FOR LOGIN [AughtEight\Bob]
WITH DEFAULT_SCHEMA = sales;
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
CÁC THỦ TỤC THƯỜNG THAO TÁC
VỚI DABASE USER TRONG SQL
SERVER 2008
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
QUYỀN (PERMISSION)
• Có 3 loại quyền
• Object Permissions
• Statement Permissions
• Implied Permissions
• Tất cả các quyền trong SQL server tồn tại 1
trong 3 trạng thái:
• GRANTED ( cấp quyền)
• REVOKED (thu hồi)
• DENIED (từ chối).
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
OBJECT PERMISSION
• SELECT
• INSERT
• UPDATE
• DELETE
• REFERENCES
• EXECUTE
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
STATEMENT PERMISSIONS
(Quyền về lệnh)
• BACKUP DATABASE
• BACKUP LOG
• CREATE DATABASE
• CREATE DEFAULT
• CREATE FUNCTION
• CREATE PROCEDURE
• CREATE RULE
• CREATE TABLE
• CREATE VIEW
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
DATA CONTROL LANGUAGE - GRANT
• GRANT : gán quyền trên câu lệnh
GRANT { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]
•
GRANT : gán quyền trên đối tượng
GRANT
{ ALL | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]
FACULTY OF INFORMATION TECHNOLOGY
MICROSOFT SQL SERVER
DATA CONTROL LANGUAGE – DENY-REVOKE
• Cú pháp:
DENY
[ON <object>] TO <user/role>
• Ví dụ:
Use pubs
DENY select, insert, update ON titles TO faculty
• Lệnh REVOKE dùng để thu hồi lại quyền đã đuợc cấp hay từ
chối từ 1 user của CSDL hiện hành
• Cú pháp
REVOKE [GRANT OPTION FOR]
[ON <object>]
FROM <user/role>
• Ví dụ:
REVOKE select, insert, update ON titles FROM faculty
FACULTY OF INFORMATION TECHNOLOGY