DML SAO LƯU – BẢO MẬT – PHÂN QUYỀN

Một phần của tài liệu Bài giảng hệ quản trị csdl it10 Đại học mở hà nội (Trang 48 - 61)

Mục tiêu:

Trong bài này, Anh/Chị cần đạt được những mục tiêu sau:

1. Nắm được khái niệm và nguyên tắc sao lưu – phục hồi Cơ sở dữ liệu

2. Biết cách thực hiện import – export CSDL

3. Hiểu và nắm được nguyên tắc Detach – Attach CSDL

4. Nắm được cơ chế phân quyền gán quyền và biết cách thực hiện phân quyền gán quyền cho người dùng

Nội dung:

I. SAO LƯU VẦ PHỤC HỒI DỮ LIỆU

1. Sao lưu dữ liệu – Backup

Sao lưu là quá trình copy toàn bộ hoặc một phần database, transaction log, file, file group thành một tập dữ liệu backup

Việc sao lưu nên thực hiện thường xuyên vì một số lý do sau:

- Ổ đĩa bị hỏng (chứa các tập tin CSDL).

- Server bị hỏng.

- Nguyên nhân bên ngoài (thiên nhiên, hỏa hoạn, mất cắp,...)

- User vô tình xóa dữ liệu.

- Bị vô tình hay cố ý làm thông tin sai lệch.

- Bị hack

Các kỹ thuật sao lưu hiện nay gồm:

a. Full backup và Differential backup

Full backup: sao lưu một bản đầy đủ của CSDL trên các phương tiện lưu trữ. Quá trình full backup có thể tiến hành mà không cần offline CSDL, nhưng quá trình này lại chiếm một lượng lớn tài nguyên hệ thống và có thể ảnh hưởng nghiêm trọng tới thời gian đáp ứng các yêu cầu của hệ thống.

Differential backup: được xây dựng nhằm làm giảm thời gian cần thiết để thực hiện quá trình full backup. Differential backup chỉ sao lưu những thay đổi trên dữ liệu kể từ lần full backup gần nhất. Trong những hệ thống CSDL lớn, quá trình

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 2 differential backup sẽ sử dụng tài nguyên ít hơn rất nhiều so với quá trình full backup

và có thể không ảnh hưởng đến hiệu suất của hệ thống.

Quá trình differential chỉ sao lưu những sự thay đổi của dữ liệu từ lần full backup gần nhất, do đó khi có sự cố với CSDL nếu không có bản sao l ưu của quá trình full backup thì bản sao lưu của quá trình differential backup sẽ trở nên vô nghĩa.

Ví dụ: Công ty XYZ thực hiện full backup vào cuối ngày thứ 6 hàng tuần và thực hiện differential backup vào tối các ngày từ thứ 2 tới thứ 5. Nếu CSDL có sự cố vào sáng thứ 4, quản trị viên CSDL sẽ phục hồi dữ liệu bằng bản sao lưu của quá trình full backup của ngày thứ 6 tuần trước và sau đó phục hồi các thay đổi của dữ liệu bằng cách áp dụng bản sao l ưu của quá trình differential backup vào ngày thứ 3.

b. Transaction log backup

Quá trình full backup và differential backup chiếm nhiều tài nguyên hệ thống

và ảnh hưởng đến hiệu suất làm việc hệ thống nên thường được thực hiện vào sau giờ làm việc. Tuy nhiên điều này có thể dẫn đến các mất mát dữ liệu trong một ng ày làm việc nếu CSDL có sự cố trước khi quá trình sao lưu diễn ra. Transaction log backup

là một giải pháp nhằm giảm thiểu tối đa lượng dữ liệu có thể mất khi có sự cố CSDL. Trong quá trình hoạt động, SQL Server sử dụng transaction log để theo d õi tất cả các thay đổi trên CSDL. Log bảo đảm CSDL có thể phục hồi sau những sự cố đột xuất và cũng đảm bảo người dùng có thể quay ngược các kết quả trong các giao tác CSDL. Các giao tác chưa hoàn thành được lưu trong log trước khi được lưu vĩnh viễn trong CSDL.

Transaction log backup sao lưu transactio n log của CSDL vào thiết bị lưu trữ. Mỗi khi transaction log được sao lưu, SQL Server bỏ đi các transaction đã thực hiện thành công (committed tracsaction) và ghi các transaction vào phương ti ện sao lưu. Transaction log backup sử dụng tài nguyên hệ thống ít hơn rất nhiều so với full backup và differential backup, do đó có thể sử dụng transaction log backup bất kỳ thời gian nào mà không sợ ảnh hưởng đến hiệu suất hệ thống.

Trở lại với ví dụ về công ty XYZ. Công ty này thực hiện full backup vào tối thứ

6 và differential backup vào tối từ thứ 2 tới thứ 5. Công ty thực hiện thêm quá trình transaction log backup mỗi giờ một lần. Giả sử sự cố CSDL xảy ra vào 9h:05 sáng thứ 4. Quá trình khôi phục lại CSDL nhu sau: Dùng full backup và differential backup

c ủa tối thứ 6 và tối thứ 3 để phục hồi lại trạng thái CSDL vào tối thứ 3. Tuy nhiên quá trình này vẫn còn để mất dữ liệu trong 2 giờ (7 – 9h) sáng thứ 4. Tiếp theo sử dụng 2 bản sao lưu transaction backup lúc 8h và 9h sáng để khôi phục CSDL về trạng thái lúc 9h sáng thứ 4.

Các bước thực hiện sao lưu:

 Mở Management Studio

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 3

 Mở cửa sổ Object Explorer, mở nút Database, chọn CSDL muốn thực hiện sao lưu dự phòng

 Nháy phải chuột lên CSDL. Chọn Task, chọn BackUp, Xuất hiện hộp thoại

 Trong mục Destination, Chọn tập tin dự phòng đã có và ấn Remove để xóa cái cũ. Chọn Add, sau chọn đường dẫn mới và nhập tên tập tin sao lưu dự phòng mới

 Đưa các lựa chọn thực hiện Backup, trong đó: Backup Type: xác định kiểu thực hiện Backup

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 4

 Ấn OK để thực hiện sao lưu

2. Khôi phục cơ sở dữ liệu

Cho phép khôi phục lại CSDL từ tập tin dự phòng (.bak) đã có

Các mô hình phục hồi dữ liệu:

Full Recovery model: Là mô hình phục hồi toàn bộ hoạt động giao dịch của

dữ liệu (Insert, Update, Delete, hoạt động bởi lệnh bcp, bulk insert).

Bulk-Logged Recovery Model: Mô hình này được thực thi cho các thao tác

bcp, bulk insert, create index, writetext, updatetext, các hoạt động này chỉ nhật ký sự kiện vào log để biết mà không sao lưu toàn bộ dữ liệu, chi tiết như trong full recover.

Simple Recovery Model: Với mô hình này bạn chỉ phục hồi lại thời điểm

backup gần nhất mà không theo thời điểm khác trong quá khứ.

Các bước thực hiện:

 Mở Management Studio

 Mở cửa sổ Object Explorer, nháy phải chuột vào Database. Chọn Restore Database

 Xuất hiện hộp thoại

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 5

 Trong To database: nhập tên CSDL mà muốn khôi phục

 Chọn From Device trong phần Source for Restore. Chọn … và chọn

Add trong cửa sổ Specify Backup

 Chọn tập tin sao lưu muốn khôi phục (tìm tập tin .bak)

 Chọn OK

 Chọn OK để thực hiện

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 6

II. ĐẶT LỊCH SAO LƯU TỰ ĐỘNG

Đặt lịch sao lưu tự động là tạo một kế hoạch cho SQL Server để SQL Server tự động thực hiện sao lưu CSDL tại một thời điểm ấn định sẵn. Để đặt lịch sao lưu tự động phải đăng nhập với Login có vai trò “sysadmin”.

Các bước thực hiện:

 Nháy phải chuột vào Maintenance Plans -> New Maintenace Plan

 Đặt tên cho Maintenance Plan

 Cấu hình lịch sao lưu tự động

Ấn định thời gian thực hiện

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 7

Chọn Back Up Database Task: cho phép sao lưu CSDL theo thời gian ấn

định  đưa các cài đặt của Back up Database Task

 Thêm Maintenance Cleanup Task để cho phép xóa các bản sao lưu cũ hơn một khoảng thời gian cho trước  tránh đầy bộ nhớ Server

 Thực hiện cấu hình cho Maintenance Cleanup Task

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 8

III. DETACH – ATTACH CƠ SỞ DỮ LIỆU

Detach – Attach là kỹ thuật hủy và nối ghép tập tin CSDL với Server (Tập tin của CSDL gồm tập tin dữ liệu và nhật ký có thể được copy từ vị trí khác)

1. Copy dữ liệu tập tin CSDL

Cho phép thực hiện copy CSDL sang một vị trí khác, sau đó sử dụng trên instance mới. Để copy thực hiện các bước sau:

Stop dịch vụ SQL của Instance có CSDL, có nghĩa là stop SQL Server không

cho phép chạy nữa

Copy các tập tin của CSDL sang vị trí cần thiết. Tập tin ở đây là file có phần

mở rộng .mdf

Start dịch vụ SQL của Instance để tiếp tục làm việc

2. Detach CSDL

Là bước thực hiện tách CSDL khỏi Instance, lúc này Instance không quản lý CSDL nhưng khác với xóa CSDL thì các tập tin chứa CSDL vẫn còn. Để tiến hành Detach, thực hiện:

Chọn CSDL cần Detach Nháy phải chuột

Chọn Task Chọn Dettach Database Chọn OK

3. Attach CSDL

Là kỹ thuật để ghép nối tập tin cơ sở dữ liệu vào Instance, để tiến hành Attach thực hiện:

Chọn Instance cần attach cơ sở dữ liệu vào

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 9

Chọn Database Nháy phải, Chọn Attach Chọn Add và chỉ ra tập tin .MDF cần attach Nhấn OK để kết thúc

IV. IMPORT VÀ EXPORT DỮ LIỆU

Import – Export là kỹ thuật cho phép chuyển dữ liệu từ dạng SQL Server ra các dạng CSDL khác như Access, Excel và ngược lại. Đồng thời cho phép chuyển sang Instance khác của SQL Server.

1. Import dữ liệu

Dùng để nhập dữ liệu vào CSDL từ các hệ quản trị CSDL khác hoặc CSDL khác của SQL Server

Thực hiện:

Tạo tên CSDL định import từ nguồn khác

Chọn mục CSDL cần import từ nguồn khác, Nháy phải chọn Task, Chọn Import Data

Chọn Next, chọn Data Source , có thể lựa chọn: SQL Server | Oracle | Access, …

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 10

Chọn tập tin đã có, chọn Next Chọn Databases sẽ import, chọn kiểu xác thực người dùng

Chọn Next, chọn Table hoặc View cần import

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 11

Chọn Next -> Finish

2. Export dữ liệu

Export là kỹ thuật xuất dữ liệu từ SQL Server ra một hệ quản trị CSDL khác hoặc một CSDL khác của SQL Server

Thực hiện:

Chọn Database, chọn Task, chọn Export Data, chọn Next Chọn DataSource cần Export

Access hoặc Excel (cần xác định phiên bản Excel tương ứng) Chọn kiểu dữ liệu đích cần export và nhập tên (Name)

Chọn CSDL SQL Server muốn Export sang

Chọn Next -> Next -> Finish

Có thể chọn các bảng được Export sang

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 12

V. NGƯỜI DÙNG VÀ XÁC THỰC

1. Xác thực kết nối trong SQL Server

Xác thực là thao tác đảm bảo biết được người dùng là ai. Các kiểu xác thực: SQL Server Login ID, Windows Login ID. Khi cài đặt SQL Server thực hiện thiết lập kiểu xác thực SQL Server sẽ dùng.

Để thay đổi kiểu xác thực:

Mở Management Studio

Trong của sổ Object Explorer, nháy phải chuột lên server muốn thay đổi, chọn Properties

Chọn nút Security

Chọn kiểu xác thực trong phần Server Authentication

Windows Authentication Mode

SQL Server and Windows Authentication Mode

Chọn OK

2. Người dùng trong SQL Server

Người dùng trong SQL Server được chia thành 2 mức:

Login: truy cập vào hệ thống SQL Server, login mới có quyền truy cập vào

Server chưa có quyền truy cập vào Database

User: người dùng, để truy cập tới CSDL theo quyền hạn

Tài khoản để kết nối tới SQL Server được gọi là tài khoản đăng nhập SQL Server. Mỗi CSDL có một tài khoản người dùng ảo gán với nó, tài khoản ảo này cung cấp bí danh tới tài khoản đăng nhập SQL Server được gọi là tài khoản người dùng CSDL.

Cú pháp tạo login:

 Tạo login với quyền window

CREATE LOGIN <tên đăng nhập> FROM WINDOWS

[ WITH [ DEFAULT_DATABASE = <Tên CSDL> ] [ , DEFAULT_LANGUAGE = <Ngôn ngữ> ] ]

 Tạo login với quyền SQL Server

CREATE LOGIN <tên đăng nhập>

WITH PASSWORD = ‘password’ [MUST_CHANGE]

[ WITH [ DEFAULT_DATABASE = <Tên CSDL> ] [ , DEFAULT_LANGUAGE = <Ngôn ngữ> ]

[ , CHECK_EXPIRATION = {ON | OFF}, [ , CHECK_POLICY = {ON | OFF } ]

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 5 Trang 13

 Cú pháp tạo User

CREATE USER <tên user>

[ {FOR | FROM} LOGIN <tên đăng nhập> } [ WITH DEFAULT_SCHEMA = <tên schema> }

 Cú pháp sửa User

ALTER USER <tên user> WITH

[ NAME = <Tên user mới> ] [ , DEFAULT_SCHEMA = <tên schema> ]

VI. PHÂN QUYỀN NGƯỜI DÙNG

Để phân quyền cho người dùng sử dụng lệnh Grant, lệnh Grant được sử dụng nhằm cấp phát quyền cho người sử dụng trên các đối tượng CSDL hoặc quyền thực thi các câu lệnh SQL. Người thực hiện Grant phải có quyền được thực hiện phân quyền cho user.

Cú pháp lệnh Grant:

GRANT permission

ON table_name | view_name[(column1)] |

stored_procedure

TO account [, … ] | group

[ WITH GRANT OPTION ]

Trong đó:

 Permission: là các quyền được trao cho account, có thể nhận các giá trị: all,

select, update, delete, insert, delete, create, alter, execute, …

 Account: là tên người dùng được quyền trao quyền, có thể là: Public hoặc tên một user cụ thể

 Nếu có WITH GRANT OPTION thì tài khoản có thể trao lại quyền của mình cho tài khoản khác

Chúc Anh/ Chị học tập tốt!

TÀI LIỆU THAM KHẢO

1. Professional SQL Server 2000 Database Design, Louis Davidson,

Wrox PressLtd

2. SQL Server 2008 Books Online.

Hệ quản trị cơ sở dữ liệu - SQL Server - Bài 6 Trang 1

Một phần của tài liệu Bài giảng hệ quản trị csdl it10 Đại học mở hà nội (Trang 48 - 61)

Tải bản đầy đủ (PDF)

(79 trang)