Ị Ơ Ở Ữ Ệ

Ề 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.

ườ

– Ng

ậ i đăng nh p (login)

ườ

– Ng

i dùng (user)

– Quy n h n (permission)

– Nhóm quy n (role)

ơ ấ • Hình thành theo c  c u

• Ng

ườ ỗ i

2

ộ c th  hi n là m i m t ng ộ ữ ệ ớ i đăng nh p đ ộ ố ớ ậ ượ ề ể ệ ạ ứ ườ dùng v i m t s  quy n h n  ng v i m t d  li u.

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ậ

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

ườ ậ ạ • T o ng i đăng nh p

Đăng nh pậ

• Xóa ng

exec sp_droplogin ‘tên_login’

drop login tên_login

ườ ậ i đăng nh p

• Thay đ i ng

alter login

{ [enable | disable] |

with {password = ‘…’|default_database = …}

5

}

ổ ườ ậ i đăng nh p

ườ

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

ườ ữ ệ ạ • T o ng ừ i dùng cho t ng d  li u

• Xóa ng

exec sp_dropuser ‘tên_user’

drop user tên_user

6

ườ i dùng

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

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

ườ ớ ề ắ • G n ng i dùng v i nhóm quy n

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])]

9

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)

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

(cid:222) u1 có quy n dùng 2 l nh  ề

Select * from sinhvien

10

Grant select on sinhvien to u2 [with grant option]

Ví dụ

ậ ớ

Đăng nh p v i ‘u1’

Grant select on sinhvien to u2 with grant option

(cid:222) V y u2 có quy n select và grant. ề

ậ ớ

Đăng nh p v i ‘sa’

Revoke select on sinhvien to u1 cascade

ế

(cid:222) Xóa h t quy n select và grant  ề

u1 và c  u2

Revoke grant option for

select on sinhvien to u1 cascade

ở11

(cid:222) Xóa quy n grant

u1 và quy n select và grant

u2

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.

12

ụ ồ ữ ệ – Cách ph c h i d  li u

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

13

ư ể ờ ư ế ủ 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)

Sao l uư (Cú pháp l nh)ệ

BACKUP DATABASE tendb

TO

[ WITH {DIFFERENTIAL | } ]

ư

ư

ầ DIFFERENTIAL : Sao l u m t ph n, m c nhiên là sao l u toàn ph n.

:= {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)

14 ế ạ ủ ả

ư

ư

ố 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)

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

15

TO DISK = 'E:\qlbv.bak'

WITH DIFFERENTIAL, NAME = 'qlbv backup 1 phan', STATS = 10

ồ Ph c h i (Cú pháp l nh)ệ

RESTORE DATABASE tendb_moi

FROM [ WITH {} ]

:= {DISK|TAPE } = ‘tên_thiết_bị’

STOP_ON_ERROR|CONTINUE_AFTER_ERROR

(ng ng khi g p l

ượ ạ c l

i và ng

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

16

ụ ồ

(Ch m d t quá trình ph c h i)

Recovery

ư

ế

(Ch a ch m d t, và cho phép ti p các l nh

NoRecovery

ụ ồ ế

ọ ệ

ế

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)

ồ ụ 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'

17

WITH FILE = 2, RECOVERY, STATS=10

ư

ồ Sao l u và ph c h i (Attach & detach)

ử ậ c l u tr  thành t p tin có đuôi là

ượ ư ớ ậ ệ .mdf và các  c l u v i t p tin

ữ ệ ượ ư D  li u đ ế ư v t l u quá trình làm vi c, giao tác đ có đuôi là .ldf .

ư ậ ữ ạ  l i các t p tin đó (quan

ộ ọ ể M t cách khác đ  sao l u là ta gi tr ng là .mdf)

ể ấ ượ ậ

ể ệ ớ ữ ằ ệ Đ  có th  l y đ vi c v i database đó n a b ng l nh ả c t p tin .mdf ta ph i không còn làm  sp_detach_db.

ể ể ạ ậ ộ i t p tin .mdf vào SQL Server thành m t

18

Đ  có th  gán l database thì ta dùng l nh ệ sp_attach_db.

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' ,

19

'E:\quanlybenhvien.mdf',

'E:\quanlybenhvien_log.ldf‘

sp_detach_db 'qlbv'

ữ ệ

ạ Sinh mã t o d  li u

20

ứ Ch c năng Generate Scripts