Bài giảng Hệ quản trị cơ sở dữ liệu SQL Server - Chương 5: Bảo mật và phân quyền - Nguyễn Thị Mỹ Dung

GVPT: NGUYỄN THỊ MỸ DUNG  
SỐ TC: 2  
SỐ TIẾT: LT: 20; TH: 20  
Biên soạn: Nguyễn Thị Mỹ Dung  
1
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)  
Biên soạn: Nguyễn Thị Mỹ Dung  
2
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
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.  
Biên soạn: Nguyễn Thị Mỹ Dung  
6
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 = ] <'Têndangnhap'>  
[,@password =] <'pass'>, [,@defdb =] <'TênCSDL'>  
[ , @deflanguage = ] <'Ngônngữ'>  
[ , @sid =] <'Mã nhận dạng Login'>  
[ ,@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 <Tên_login>  
WITH PASSWORD = <‘Pass’>,  
DEFAULT_DATABASE = <TÊN_DB>  
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  
Tải về để xem bản đầy đủ
pdf 24 trang yennguyen 11740 Free
Bạn đang xem 20 trang mẫu của 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 và phân quyền - Nguyễn Thị Mỹ Dung", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_he_quan_tri_co_so_du_lieu_sql_server_chuong_5_bao.pdf