1/ Khái niệm
Mỗi CSDL có 1 hay nhiều users được chỉ định
quyền truy xuất dữ liệu. Người quản trị có thể cấp
quyền truy xuất CSDL bằng cách tạo một tài khoản
(user) đăng nhập (login) và gán quyền cho user
trên CSDL. Các quyền:
- Cấp phát quyền truy cập vào CSDL;
- Cấp phát quyền sử dụng các câu lệnh, các đối
tượng CSDL;
- Thu hồi quyền của người dùng
24 trang |
Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 829 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Hệ quản trị cơ sở dữ liệu SQL Server - Chương 5: Bảo mật & Phân quyền - Nguyễn Thị Mỹ Dung, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GVPT: NGUYỄN THỊ MỸ DUNG
SỐ TC: 2
SỐ TIẾT: LT: 20; TH: 20
1 Biên soạn: Nguyễn Thị Mỹ Dung
Chương 1: Tổng quan về SQL Server (LT: 2)
Chương 2: Tạo và quản trị CSDL (LT: 6; TH: 6)
Chương 3: Transact-SQL và truy vấn dữ liệu
(LT: 6: TH: 8)
Chương 4: Lập trình với Transact-SQL (LT: 4:
TH: 4)
Chương 5: Bảo Mật và Phân Quyền (LT: 2;
TH: 2)
Chương 6: Kết nối CSDL (Tự học)
2 Biên soạn: Nguyễn Thị Mỹ Dung
I. Giới thiệu
II. Login, User Account, User Roles
III. Kế hoạch phân quyền và bảo mật
IV. Kết nối CSDL
Biên soạn: Nguyễn Thị Mỹ Dung 3
1/ Khái niệm
Mỗi CSDL có 1 hay nhiều users được chỉ định
quyền truy xuất dữ liệu. Người quản trị có thể cấp
quyền truy xuất CSDL bằng cách tạo một tài khoản
(user) đăng nhập (login) và gán quyền cho user
trên CSDL. Các quyền:
- Cấp phát quyền truy cập vào CSDL;
- Cấp phát quyền sử dụng các câu lệnh, các đối
tượng CSDL;
- Thu hồi quyền của người dùng.
Biên soạn: Nguyễn Thị Mỹ Dung 4
2/ Các thành phần trong bảo mật CSDL
- Người dùng cơ sở dữ liệu (Database user):
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
được xác định thông qua tên người dùng (User ID)
hoặc nhóm người dùng (User Group).
- Các đối tượng cơ sở dữ liệu (Database
objects): bảng, khung nhìn, thủ tục, hàm được gọi
là các đối tượng cơ sở dữ liệu.
- Đặc quyền (Privileges): Là tập những thao
tác được cấp phát cho người dùng trên các đối
tượng cơ sở dữ liệu.
Biên soạn: Nguyễn Thị Mỹ Dung 5
Biên soạn: Nguyễn Thị Mỹ Dung 6
1/ Login và user
SQL Server cho phép truy nhập vào hệ thống thông
qua các login. Chỉ khi có quyền ở mức độ nhất định
bạn mới có thể tạo thêm login.
- Login: tên hệ thống (duy nhất) được SQL Server
cấp phép truy cập hệ thống.
- User: tên gắn với 1 login name cụ thể được SQL
cấp phép truy xuất 1 DB xác định.
Như vậy:
- Một login name có nhiều user, một user được tạo
ở DB nào thì chỉ được phép truy xuất DB đó.
- Để tạo nhiều user phải tạo LOGIN NAME trước,
sau đó mở DB tương ứng và lần lượt tạo từng USER.
2/ Authentication
SQL Server xác thực các đăng nhập bằng hai cơ
chế: windows authentication, SQL Server authentica-
tion.
- Nếu chọn windows..., bạn cần cung cấp một
windows account và SQL Server sẽ chỉ lưu tên của
account đó trong danh sách login.
- Nếu chọn SQL Server..., bạn cần cung cấp login
name và password và cả hai đều được lưu trong SQL
Server.
Lưu ý: login sử dụng windows authentication, SQL
Server chỉ lưu login name, không lưu password và khi
đăng nhập, hệ thống sẽ không xác thực cho bạn.
Biên soạn: Nguyễn Thị Mỹ Dung 7
3/ Server role
Role thực chất là tập hợp một nhóm các quyền và
đại diện bằng một tên để thuận tiện cho việc quản lý.
Server role là nhóm các quyền ở mức server mà login
được cấp sẽ có thể thực hiện một số thao tác nhất
định ở mức server.
Login khi mới được tạo sẽ có role public, role này
thực chất không có quyền gì ngoài quyền truy nhập
vào server.
4/ Database role
DB tập hợp các quyền truy nhập vào DB thành từng
nhóm để dễ tạo lập và sửa đổi. Khi user là role public,
user chỉ có thể nhìn thấy tên database mà không có
quyền gì khác.
Biên soạn: Nguyễn Thị Mỹ Dung 8
Phân chia quyền hạn quản trị và sử dụng Hệ
quản trị CSDL SQL Server.
Hình thành theo cơ cấu
Người đăng nhập (login)
Người dùng (user)
Quyền hạn (permission)
Nhóm quyền (role)
Người đăng nhập được thể hiện là mỗi một
người dùng với một số quyền hạn ứng với một dữ
liệu.
Biên soạn: Nguyễn Thị Mỹ Dung 9
1. Đăng nhập (login)
a/ Tạo người đăng nhập
SP_ADDLOGIN [ @login = ]
[,@password =] , [,@defdb =]
[ , @deflanguage = ]
[ , @sid =]
[ ,@encriptopt = 'skip_encription' ]--mã hóa pass
[,]
VD: Tạo tài khoản tên USER01', mat khau ‘01'
vào CSDL 'QLDeTaiSV‘
SP_ADDLOGIN 'USER01','01','QLDETAISV'
Biên soạn: Nguyễn Thị Mỹ Dung 10
Cách 2:
CREATE LOGIN
WITH PASSWORD = ,
DEFAULT_DATABASE =
VD1: Tạo login USER02
CREATE LOGIN USER02
WITH PASSWORD = 'ABC',
DEFAULT_DATABASE = QLDETAISV
[,]
Biên soạn: Nguyễn Thị Mỹ Dung 11
b/ Thay đổi người đăng nhập
ALTER LOGIN { [ENABLE | DISABLE] |
WITH {PASSWORD= ‘...’ | DEFAULT_DATABASE = ... }
VD:
ALTER LOGIN [sa] DISABLE
c/ Xóa người đăng nhập
[EXEC] SP_DROPLOGIN ‘TÊN_LOGIN’
Hoặc: DROP LOGIN TÊN_LOGIN
VD:
DROP LOGIN USER01
EXEC SP_DROPLOGIN USER02
Biên soạn: Nguyễn Thị Mỹ Dung 12
2. Người dùng (User)
a/ Tạo người dùng
EXEC SP_ADDUSER ‘TÊN_LOGIN’, ’TÊN_USER’
[ , ‘TÊN_ROLE’ ]
CREATE USER TÊN_USER FOR TÊN_LOGIN
VD:
EXEC SP_ADDUSER [MDUNG], [HQTCSDL]
CREATE USER [IN410501] FOR LOGIN [MDUNG]
CREATE USER [IN410502] WITHOUT LOGIN
WITH DEFAULT_SCHEMA =[MDUNG]
Biên soạn: Nguyễn Thị Mỹ Dung 13
b/ Xoá người dùng
[EXEC] SP_DROPUSER ‘TÊN_USER’
DROP USER TÊN_USER
VD:
DROP USER IN410501
EXEC SP_DROPUSER IN410502
Biên soạn: Nguyễn Thị Mỹ Dung 14
3. Nhóm quyền hạn (Role)
a/ Tạo quyền
EXEC SP_ADDROLE TÊN_ROLE
CREATE ROLE TÊN_ROLE
VD:
EXEC SP_ADDROLE [QUANLY]
CREATE ROLE [NHANVIEN]
b/ Xóa nhóm quyền
EXEC SP_DROPROLE TÊN_ROLE
DROP ROLE TÊN_ROLE
Biên soạn: Nguyễn Thị Mỹ Dung 15
c/ Gắn người dùng với nhóm quyền
EXEC SP_ADDROLEMEMBER TÊN_ROLE,
TÊN_USER
VD:
EXEC SP_ADDROLEMEMBER 'QUANLY',
'IN410501'
d/ Xóa người dùng với nhóm quyền
EXEC SP_DROPROLEMEMBER TÊN_ROLE ,
TÊN_USER’
VD:
EXEC SP_DROPROLEMEMBER 'QUANLY',
'IN410501'
Biên soạn: Nguyễn Thị Mỹ Dung 16
Biên soạn: Nguyễn Thị Mỹ Dung 17
4. Cấp quyền (Permission)
a/ Gán quyền
GRANT {ALL | PERMISSION}
ON TABLE [(COLUMN [,...N])]
TO { USER | ROLE [,... N] }
[ WITH GRANT OPTION ]
with grant option : được phép gán lại quyền mà
mình có cho người khác.
VD1:
GRANT SELECT ON DETAI TO QUANLY
Biên soạn: Nguyễn Thị Mỹ Dung 18
VD2:
GRANT SELECT --INSERT | UPDATE | DELETE
| REFERENCES | EXECUTE
ON SINHVIEN -- DETAI | SV_DT
TO IN410501 -- PUBLIC| MDUNG | sa
Biên soạn: Nguyễn Thị Mỹ Dung 19
b/ Xóa quyền hạn
REVOKE [Grant Option For] {ALL| PERMISSION}
ON TABLE[ (COLUMN [,...N])]
TO { USER | ROLE [,... N] }
[ CASCADE ]
- grant option for : bỏ tính năng cấp lại quyền
cho người khác (quyền vẫn được giữ lại).
- cascade: bỏ tất cả các quyền (ở các kế thừa).
VD:
REVOKE SELECT ON SINHVIEN TO
IN410501
REVOKE CREATE TABLE FROM MDUNG
Biên soạn: Nguyễn Thị Mỹ Dung 20
5. Thay đổi mật khẩu
SP_PASSWORD [ @old = ]
[ , @new = ]
[ , @LoginName = ]
VD: Thay đổi mật khẩu ‘USER01’ từ ‘01’ thành
‘SS’
SP_PASSWORD '01','SS','USER01'
Biên soạn: Nguyễn Thị Mỹ Dung 21
6 Cấp quyền truy xuất CSDL hiện tại cho
Login:
Sp_GrantDBAccess [ @loginname = ]
'Têndangnhap'
[ [, @name_in_db = ] 'TênUser' ]
VD:
Use QLDeTai
Go
sp_GrantDBAccess 'user01', 'Anh'
Biên soạn: Nguyễn Thị Mỹ Dung 22
Sinh viên tự học
Biên soạn: Nguyễn Thị Mỹ Dung 23
- Tổng quan về bảo mật
- Các khái niệm liên quan phân quyền và bảo
mật
- Kế hoạch phân quyền:
+ Tạo Login
+ Tạo User
+ Tạo Role
+ Thay đổi mật khẩu login hoặc user
+ Cấp phát/thu hồi quyền truy cập CSDL cho
user.
Biên soạn: Nguyễn Thị Mỹ Dung 24
Các file đính kèm theo tài liệu này:
- bai_giang_he_quan_tri_co_so_du_lieu_sql_server_chuong_5_bao.pdf