Bài giảng Phân quyền trong hệ quản trị cơ sở dữ liệu SQL server 2012 giúp người học nắm được kiến thức về phân quyền; mô hình; tạo người đăng nhập; tạo người dùng cho từng dữ liệu; người dùng và nhóm quyền...
Trang 1PHÂN QUY N TRONG Ề
H QU N TR C S D LI U Ệ Ả Ị Ơ Ở Ữ Ệ
SQL SERVER 2012
Trang 2Phâ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
Trang 32
3
4
Login SQL Service User & Permission & Role Database
Log in
SQL Server
P 3
Mô hình
Trang 4Đă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
Trang 5Đă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
Trang 6Ng ườ 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’
Trang 7Nhóm quy n ề
• T o nhóm quy nạ ề
exec sp_addrole ‘tên_role’
create role tên_user
exec sp_droprole ‘tên_role’
Trang 8Ng ườ 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’
exec sp_droprolemember
‘tên_role’ , ‘tên_user’
8
Trang 9Quy 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
Trang 10Đă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
Trang 11Đă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 ở
Trang 12Sao 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.ư ữ ệ
Trang 13Sao 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
Trang 14Sao 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
Trang 15Sao 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
Trang 16Ph c h i ụ ồ
(Cú pháp l nh) ệ
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
Trang 17Ph 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
Trang 18Sao 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
Trang 19L nh & ví d ệ ụ
‘đường_dẫn_và_tên_tập_tin_mdf’,
‘đường_dẫn_và_tên_tập_tin_ldf’
'E:\quanlybenhvien.mdf',
'E:\quanlybenhvien_log.ldf‘
19
Trang 20Sinh mã t o d li u ạ ữ ệ
Ch c năng Generate Scriptsứ
20