Bài giảng Phân quyền trong hệ quản trị cơ sở dữ liệu SQL Server 2012

PHÂN QUYỀN TRONG  
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU  
SQL SERVER 2012  
Phân quyền  
• Sự phân chia khả năng quản trị và sử dụng hệ quản trị cơ  
sở dữ liệu 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.  
2
Mô hình  
Login  
SQL Service  
User & Permission & Role  
Database  
Log in  
1
3
2
4
P
R1  
R2  
SQL Server  
3
Đăng nhập  
• Tạo người đăng nhập  
exec sp_addlogin  
‘tên_login’ , ‘mật_khẩu’ [, ‘dữ_liệu’]  
create login tên_login  
with password = ‘mật_khẩu’  
[, default_database = dữ_liệu ]  
4
Đăng nhập  
• Xóa người đăng nhập  
exec sp_droplogin ‘tên_login’  
drop login tên_login  
• Thay đổi người đăng nhập  
alter login  
{ [enable | disable] |  
with {password = ‘…’|default_database = …}  
}
5
Người dùng  
• Tạo người dùng cho từng dữ liệu  
exec sp_adduser  
‘tên_login’ , ’tên_user’ [ , ‘tên_role’ ]  
create user tên_user for tên_login  
• Xóa người dùng  
exec sp_dropuser ‘tên_user’  
drop user tên_user  
6
Nhóm quyền  
• Tạo nhóm quyền  
exec sp_addrole ‘tên_role’  
create role tên_user  
• Xóa nhóm quyền  
exec sp_droprole ‘tên_role’  
drop role tên_role  
7
Người dùng & nhóm quyền  
• Gắn người dùng với nhóm quyền  
exec sp_addrolemember  
‘tên_role’ , ‘tên_user’  
• Xóa nhóm quyền  
exec sp_droprolemember  
‘tên_role’ , ‘tên_user’  
8
Quyền hạn  
(permission)  
Tạo quyền hạ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.  
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)  
9
Ví dụ  
Đăng nhập ‘sa’  
Exec sp_addlogin ‘u1’, ‘123’  
Exec sp_addlogin ‘u2’, ‘123’  
Exec sp_adduser ‘u1’, ‘u1’  
Exec sp_adduser ‘u2’, ‘u2’  
Grant select on sinhvien to u1 with grant option  
u1 có quyền dùng 2 lệnh  
Select * from sinhvien  
Grant select on sinhvien to u2 [with grant option]  
10  
Ví dụ  
Đăng nhập với ‘u1’  
Grant select on sinhvien to u2 with grant option  
Vậy u2 có quyền select và grant.  
Đăng nhập với ‘sa’  
Revoke select on sinhvien to u1 cascade  
Xóa hết quyền select và grant ở u1 và cả u2  
Revoke grant option for  
select on sinhvien to u1 cascade  
Xóa quyền grant ở u1 và quyền select và grant ở u2  
11  
Sao lưu  
Khái niệm  
Sao lưu là công việc sao chép thông tin của database  
vào một thời điểm nhất định vào nơi lưu trữ khác.  
Vấn đề  
– Có thật sự có nhu cầu cần sao lưu dữ liệu.  
– Chiến lược sao lưu dữ liệu.  
– Cách phục hồi dữ liệu  
12  
Sao lưu  
(Phân loại)  
Sao lưu toàn phần  
Toàn bộ database sẽ được ghi lại vào thời điểm sao lưu.  
Sao lưu một phần  
Chỉ những phần thay đổi của database so với thời điểm  
mà database đã sao lưu toàn phần gần nhất.  
Sao lưu bảng lưu vết của giao tác (transaction log)  
Sao lưu vết của các giao tác đang được thực thi tại thời  
điểm sao lưu.  
Sao lưu các bảng sao trong dữ liệu phân tán (duplicate  
data)  
13  
Sao lưu  
(Cú pháp lệnh)  
BACKUP DATABASE tendb  
TO <thiết bị lưu>  
[ WITH {DIFFERENTIAL | <tham số>} ]  
DIFFERENTIAL: Sao lưu một phần, mặc nhiên là sao lưu toàn phần.  
<thiết bị lưu> := {DISK|TAPE}=‘tên_thiết_bị’  
DESCRIPTION = ghichu (ghi chú bảng lưu)  
NAME = ten(ghi tên bảng lưu)  
PASSWORD = matkhau(ghi mật khẩu bảng lưu)  
RETAINDAYS = songay(ghi số ngày hết hạn của bảng lưu tính từ thời  
điểm sao lưu)  
EXPIREDATE = ngay(hạn cuối của bảng sao lưu)  
STOP_ON_ERROR | CONTINUE_AFTER_ERROR (ngừng khi gặp lỗi  
và ngược lại)  
STATS = số (phần trăm thể hiện trong quá trình sao lưu)  
14  
Sao lưu  
(Ví dụ)  
Sao lưu toàn phần cho database tên là ‘qlbv’  
BACKUP DATABASE qlbv  
TO DISK = 'E:\qlbv.bak'  
WITH NAME = 'qlbv backup', STATS = 10  
Sao lưu một phần cho database tên là ‘qlbv’  
BACKUP DATABASE qlbv  
TO DISK = 'E:\qlbv.bak'  
WITH DIFFERENTIAL, NAME = 'qlbv backup  
1 phan', STATS = 10  
15  
Phục hồi  
(Cú pháp lệnh)  
RESTORE DATABASE tendb_moi  
FROM <thiết bị lưu> [ WITH {<tham số>} ]  
<thiết bị lưu> := {DISK|TAPE } = ‘tên_thiết_bị’  
STOP_ON_ERROR|CONTINUE_AFTER_ERROR  
(ngừng khi gặp lỗi và ngược lại)  
FILE = { tên | số thứ tự }  
(Chỉ bảng sao lưu được phục hồi trong tập tin sao lưu)  
PASSWORD = matkhau  
(ghi mật khẩu bảng lưu)  
RECOVERY | NORECOVERY  
Recovery  
(Chấm dứt quá trình phục hồi)  
NoRecovery (Chưa chấm dứt, và cho phép tiếp các lệnh phục hồi kế,  
và quá trình sẽ có trạng thái Recovery nếu mọi lệnh phục hồi hoàn thành)  
Sao lưu 1 phần chỉ được phục hồi liền sau quá trình phục hồi toàn phần (với  
tham số norecovery)  
16  
Phục hồi  
(Ví dụ)  
Phục hồi từ tập tin ‘qlbv.bak’ thành database tên là ‘qlbv’.  
RESTORE DATABASE qlbv  
FROM DISK = 'E:\qlbv.bak'  
WITH FILE = 1, NORECOVERY, STATS=10;  
RESTORE DATABASE qlbv  
FROM DISK = ‘E:\qlbv.bak'  
WITH FILE = 2, RECOVERY, STATS=10  
17  
Sao lưu và phục hồi  
(Attach & detach)  
Dữ liệu được lưu trử thành tập tin có đuôi là .mdf và các  
vết lưu quá trình làm việc, giao tác được lưu với tập tin có  
đuôi là .ldf .  
Một cách khác để sao lưu là ta giữ lại các tập tin đó (quan  
trọng là .mdf)  
Để có thể lấy được tập tin .mdf ta phải không còn làm việc  
với database đó nữa bằng lệnh sp_detach_db.  
Để có thể gán lại tập tin .mdf vào SQL Server thành một  
database thì ta dùng lệnh sp_attach_db.  
18  
Lệnh & ví dụ  
sp_detach_db ‘tên_database’  
sp_attach_db ‘tên_database’ ,  
‘đường_dẫn_và_tên_tập_tin_mdf’,  
‘đường_dẫn_và_tên_tập_tin_ldf’  
sp_attach_db 'qlbv' ,  
'E:\quanlybenhvien.mdf',  
'E:\quanlybenhvien_log.ldf‘  
sp_detach_db 'qlbv'  
19  
Sinh mã tạo dữ liệu  
Chức năng Generate Scripts  
20  
pptx 20 trang yennguyen 20360 Free
Bạn đang xem tài liệu "Bài giảng Phân quyền trong hệ quản trị cơ sở dữ liệu SQL Server 2012", để 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:

  • pptxbai_giang_phan_quyen_trong_he_quan_tri_co_so_du_lieu_sql_ser.pptx