NỘI DUNG
Khái niệm
Chế độ bảo mật
Kiểm soát quyền truy cập trên CSDL
Vai trò của Server và Database
Quản trị người dùng
21 trang |
Chia sẻ: phuongt97 | Lượt xem: 562 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng SQL server - Chương 8: Quản lý người dùng và bảo mật hệ thống - Lê Thị Minh Nguyện, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
10/03/2015
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN
THÀNH PHỐ HỒ CHÍ MINH
Chương 8. Quản lý người
dùng và bảo mật hệ thống
GV: Lê Thị Minh Nguyện
Email: leminhnguyen@itc.edu.vn
NỘI DUNG
Khái niệm
Chế độ bảo mật
Kiểm soát quyền truy cập trên CSDL
Vai trò của Server và Database
Quản trị người dùng
1
10/03/2015
1.Khái niệm
Bảo mật cho phép người quản trị CSDL tự ra
quyết định cho phép, hay không cho phép
người dùng truy cập và thao tác trên CSDL sao
cho có hiệu quả bảo mật dữ liệu tốt nhất.
Bảo mật trong SQL Server có thể sử dụng mô
hình 3 tầng.
1. Sử dụng thẩm định quyền (Login security)
2. Khả năng để người sử dụng sử dụng 1 hoặc nhiều
CSDL(Database access security)
3. Các quyền cụ thể sử dụng bảo vệ CSDL
(Permission security) 3
2.Chế độ bảo mật
SQL Server có 2 chế độ bảo mật
. Windows Authentication Mode (Windows Authentication)
. Mixed Mode (Windows Authentication and SQL Server
Authentication)
4
2
10/03/2015
2.Chế độ bảo mật
Windows Authentication: Là chế độ bảo mật mà những
User truy nhập SQL Server phải là những User của
Windows. Khi Server đặt ở chế độ bảo mật này, những User
phải là những User được Windows quản lý mới được truy
nhập.
5
2.Chế độ bảo mật
SQL Server Authentication: Khi thiết lập ở chế
độ bảo mật này, những User được quyền khai
thác phải là những User do quản trị SQL Server
tạo ra, mà những user của Windows không
được khai thác.
SQL Server cho phép thiết lập hai chế độ
. Windows Authentication Mode (Windows Authentication)
. Mixed Mode (Windows Authentication and SQL Server
6
Authentication)
3
10/03/2015
7
3. Kiểm soát quyền truy cập trên CSDL
• Xét CSDL bán hàng gồm: PhongBan, SanPham,
DonHang, CTDonHang, KhachHang và NhanVien.
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.
8
4
10/03/2015
3. Kiểm soát quyền truy cập trên CSDL
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 đó.
User không được phép truy xuất tới bất kỳ bộ phận nào của CSDL
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 đó
User có thể đọc đúng một bộ trong bảng NhanVien nhưng không
được sửa đổi bộ này
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.
9
3. Kiểm soát quyền truy cập trên CSDL
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
User có thể đọc các thuộc tính MaNV, TenNV, Luong nhưng trong
mỗi bộ chỉ được sửa giá trị của các thuộc tính Luong trong khoảng
thời gian từ 8h -> 11h từ một thiết bị đầu cuối đặt trong phòng tài vụ
User có thể đọc các thuộc tính MaNV, TenNV, Luong nhưng trong
mỗi bộ chỉ được sửa giá trị của các thuộc tính Lương nếu và chỉ nếu
giá trị hiện tại của thuộc tính Luong < 500 USD
10
5
10/03/2015
3. Kiểm soát quyền truy cập trên CSDL
User có thể áp dụng các phép toán thống kê cho thuộc tính Lương
(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.
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 đó.
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 đó.
11
3. Kiểm soát quyền truy cập trên CSDL
Xác nhận người dùng
Phân quyền
12
6
10/03/2015
3.1. Xác nhận người dùng
Những user khác nhau tùy theo vị trí, vai trò, trách nhiệm
và quyền hạn trong hệ thống sẽ có các quyền khác nhau
đối với CSDL hay các bộ phận khác nhau của CSDL như
các quan hệ hay thuộc tính của các quan hệ. Các quyền
này bao gồm đọc, thêm, xóa hay sửa đổi các đối tượng
của CSDL.
13
3.1. Xác nhận người dùng
Các DBMS phải đảm bảo không cho chép user thực hiện
bất kỳ thao tác nào nếu không được phép. Người quản trị
CSDL (DBA) là người có quyền cấp tài nguyên và quyền
thao tác CSDL, nghĩa là người quản trị phải:
(1) Xác nhận cho hệ thống những quyền hay cụ thể những thao tác
mà mỗi user được phép thực hiện.
(2) Cung cấp một phương tiện cho user để hệ thống nhận biết được
họ.
14
7
10/03/2015
3.1. Xác nhận người dùng
Nhiệm vụ của DBA:
. Định nghĩa lược đồ CSDL.
. Định nghĩa cấu trúc lưu trữ và phương thúc truy xuất dữ liệu.
. Sửa đổi lược đồ và tổ chức vật lý.
. Cấp quyền User để truy xuất dữ liệu
15
3.1. Xác nhận người dùng
Nhiệm vụ của DBA:
. Thực hiện vai trò liên kết các user.
. Giám sát việc thực thi và đáp ứng các thay đổi phù hợp.
. Quản lý không gian lưu trữ, thực hiện sao lưu dữ liệu.
. Việc xác nhận user thường được sử dụng là mật khẩu.
16
8
10/03/2015
3.2.Phân quyền người dùng
Quyền người dùng được định nghĩa như mức độ người
dùng có thể hay không thể thực thi trên CSDL, quyền được
chia thành 4 loại như sau:
– Quyền truy cập vào SQL Server
– Quyền truy cập vào CSDL
– Quyền thực hiện trên các đối tượng của CSDL
– Quyền xử lý dữ liệu
17
4.Vai trò của Server và Database
Server role (vai trò phía Server)
Database role (vai trò phía Database)
18
9
10/03/2015
4.1. Server role
Role mức server do hệ thống tạo ra không thay đổi được
Được phép thực hiện Bulk Insert.
Được phép tạo và sửa đổi cấu trúc CSDL.
Có thể quản trị các file trên đĩa.
Quản trị các dịch vụ đang chạy của SQL Server
Quản trị hệ thống bảo mật
19
Quản trị server
tblEmployee(MaNV, Ten, ChucDanh, ChuyenMon, ChucVu)
bulk insert tblEmployee from 'd:\employee.txt'
with
(
fieldterminator='|',
rowterminator='\n'
)
20
10
10/03/2015
4.2. 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.
21
4.2. Database role
Vai trò Diễn giải
Db_owner Đây là vai trò cao nhất. Người dùng có toàn
quyền kiểm soát CSDL. Người dùng sa là thành
viên của vai trò này.
Db_securityadmin Cho phép người dùng quản lý tất cả các vai trò và
các thành viên của chúng. Vai trò này cũng cho
phép gán các quyền hạn cho các vai trò.
Db_ accessadmin Vai trò này dùng cung cấp các quyền người dùng
để thêm hoặc gỡ bỏ các người dùng trong CSDL
Db_addadmin Cho phép người dùng thao tác tất cả các đối
tượng trong CSDL. Ví dụ: có thể tạo lập, sửa chữa
hoặc xoá các đối tượng trong CSDL.
Db_backupoperator Cho phép người dùng thực hiện thao tác sao chép
dự phòng
22
11
10/03/2015
4.2. Database role
Vai trò Diễn giải
Db_datawriter Cho phép sửa chữa dữ liệu trong tất cả các
bảng người dùng định nghĩa trong CSDL
Db_datareader Cho phép người dùng hiển thị dữ liệu từ các
bảng người dùng định nghĩa trong CSDL
Db_denydatawriter Ngăn chặn người dùng sửa chữa dữ liệu
trong bảng người dùng định nghĩa trong
CSDL
Db_denydatareader Ngăn chặn người dùng hiển thị dữ liệu trong
bảng người dùng định nghĩa trong CSDL
Public Vai trò public này hầu như không có quyền
23
hạn ngoại trừ vài quyền rất cơ bản cho phép
người dùng tạo kết nối tới CSDL
4.2. Database role
Tạo role: trong CSDL hiện hành
. Sp_addrole ‘role’
Đưa một user vào role
. Sp_addrolemember ‘role’, ‘user’
Xóa nhóm
. Sp_droprole ‘role’
Xóa một thành viên trong nhóm
. Sp_droprolemember ‘role’, ‘user’ 24
12
10/03/2015
5.Quản trị người dùng
Người dùng trong SQL Server được chia thành 2 mức:
. Người truy nhập vào SQL Server gọi là Login
. Người khai thác CSDL gọi là User.
25
5. Quản trị người dùng
Nhà quản trị hệ thống (System administrator).
Người chủ CSDL (database owner).
Tạo login đăng nhập.
Cấp quyền truy cập vào CSDL.
Quyền thực hiện trên các đối tượng của CSDL.
Quyền xử lý dữ liệu.
26
13
10/03/2015
5.1. Nhà quản trị hệ thống
(System administrator)
Nhà quản trị hệ thống có login là sa.
Có tòan quyền truy xuất đến tất cả đối tượng trong
SQL Server
Không thể xóa login sa
27
5.2. Người chủ CSDL (database
owner)
Login dbo được gọi là database owner.
dbo là thành viên của nhóm db_owner.
Không thể xóa khỏi nhóm này.
28
14
10/03/2015
5.3.Tạo login đăng nhập
• Tạo login bằng phát biểu SQL
– Create Login Login_name with password
• Ví dụ:
– Create login aido with password = ‘123456’
• Liệt kê danh sách login
– Select name, createdate
From syslogins
29
5.3.Tạo login đăng nhập
• Dùng sp
EXEC sp_addlogin
[@login= ]
[,@password= ]
[,@defdb= ]
• Ví dụ
Use QLSV
EXEC sp_addlogin 'aido', '123456'
30
15
10/03/2015
5.4.Cấp quyền truy cập vào CSDL
• Cú pháp SQL
Create user user_name
For Login
• Ví dụ:
Use QLSV
Create user tuiday
For login aido
31
5.4.Cấp quyền truy cập vào CSDL
• Cú pháp sp
EXEC sp_grantdbaccess
[@loginname= ]
[,@name_in_db= ]
Ví dụ:
Use qlsv
exec sp_grantdbaccess aido, tuiday
32
16
10/03/2015
5.4.Cấp quyền truy cập vào CSDL
Thay đổi password
• Cú pháp:
EXEC sp_password
[@old= ]
[,@new= ]
[,@loginname= ]
• EXEC sp_password ‘123456’, ‘123’, ‘aido’
33
5.4.Cấp quyền truy cập vào CSDL
Xóa quyền truy cập vào csdl
• Cú pháp:
EXEC sp_revokedbaccess
[@loginname=
• Ví dụ:
EXEC sp_revokedbaccess ‘tuiday’
34
17
10/03/2015
5.5.Quyền thực hiện trên các đối tượng của CSDL
• Cấp quyền tạo đối tượng - Create database
– Cú pháp - Create table
Grant to [tên user] - Create View
• Ví dụ: Cấp quyền tạo view - Create proc
Use QLSV - Create rule
GRANT create table, create view - Create default
To tuiday - Backup database
• Cấm quyền tạo đối tượng - Backup log
Deny to [tên user]
• Ví dụ:
DENY create table To pvn
35
5.6.Quyền xử lý dữ liệu
• Cấp quyền xử lý dữ liệu - Select
Grant <ALL| các quyền
ON - Update
TO - Insert
• Ví dụ:
- Delete
GRANT INSERT, UPDATE, DELETE
ON sinhvien - References
TO lmn
• Cấm quyền tạo đối tượng - Execute
Deny on to
[tên user] (hoặc dùng revoke)
36
• Ví dụ: Deny insert on sinhvien to lmn
18
10/03/2015
5.6.Quyền xử lý dữ liệu
• Grant/ Revoke/ Deny còn cho phép cấp quyền trên từng Field
của table.
• Ví dụ: cho user ltm chỉ được quyền hiệu chỉnh dữ liệu trên các
Field: Ho, Ten, Phai, DiaChi, NgaySinh của NHANVIEN
GRANT UPDATE
(Ho, Ten, Phai, DiaChi, NgaySinh)
ON NHANVIEN
To lmn
37
Ví dụ
Tạo 3 login A, B, C có chung 1 password là
‘password’ làm việc trên CSDL QLTV
Tạo nhóm PK và cho A,B thuộc nhóm này
Use master
Exec sp_addlogin ‘A’, ‘password’, ‘QLTV’
Exec sp_addlogin ‘B’, ‘password’, ‘QLTV’
Exec sp_addlogin ‘C’, ‘password’, ‘QLTV’
38
19
10/03/2015
Ví dụ
Use qltv
Exec sp_grantdbaccess @loginame= ‘A’
Exec sp_grantdbaccess @loginame= ‘B’
Exec sp_grantdbaccess @loginame= ‘C’
Exec sp_addrole ‘PK’
Exec sp_addrolemember ‘PK’, ‘A’
Exec sp_addrolemember ‘PK’, ‘B’
39
20
10/03/2015
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN
THÀNH PHỐ HỒ CHÍ MINH
21
Các file đính kèm theo tài liệu này:
- bai_giang_sql_server_chuong_8_quan_ly_nguoi_dung_va_bao_mat.pdf