intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Các hệ cơ sở dữ liệu: An toàn và khôi phục dữ liệu - Lương Trần Hy Hiến

Chia sẻ: Gió Biển | Ngày: | Loại File: PDF | Số trang:9

86
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Các hệ cơ sở dữ liệu: An toàn và khôi phục dữ liệu" cung cấp cho người đọc các kiến thức: Khái niệm an toàn dữ liệu, các loại sự cố, sao lưu và phục hồi dữ liệu, cài đặt SQL Server. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Các hệ cơ sở dữ liệu: An toàn và khôi phục dữ liệu - Lương Trần Hy Hiến

  1. Mục Tiêu  Khái niệm an toàn dữ liệu.  Các loại sự cố.  Sao lưu và phục hồi dữ liệu.  Cài ñặt trên SQL Server. DBMS03 – Slides 2 An Toàn Dữ Liệu Phân quyền truy cập  Các cơ chế an toàn dữ liệu:  Tạo bảng ảo View  Mã hóa dữ liệu  Cấp phát quyền cho người dùng: Dùng  Phân quyền truy cập lệnh grant và revoke  GRANT Update ON Product TO Smith  Cấp quyền sửa trên bảng Product cho user Smith  REVOKE Update ON Product TO Smith  Bỏ quyền sửa trên bảng Product của user Smith  Tạo user truy cập CSDL với quyền giới hạn  Xem hướng dẫn demo SQLSecurity Demo.rar DBMS03 – Slides 3 DBMS03 – Slides 4
  2. GRANT GRANT (tt)  Cho phép người dùng có thể thực thi một số  Quyền trên ñối tượng: câu lệnh trên CSDL hiện tại. GRANT { ALL [ PRIVILEGES ] | permission [ ,...n ] }  Quyền trên câu lệnh: { GRANT {ALL | statement [,..n]} TO [ ( column [ ,...n ] ) ] ON { table| view } security_account[,..n] | ON { table view } [ ( column [ ,...n ] ) ]  Statement: câu lệnh ñược phép thực thi, là một | ON { stored_procedure| extended_procedure } trong các câu lệnh CREATE DATABASE, CREATE | ON { user_defined_function} DEFAULT, CREATE FUNCTION, CREATE } PROCEDURE, CREATE RULE, CREATE TABLE, TO security_account [ ,...n ] CREATE VIEW, BACKUP DATABASE, BACKUP LOG. [ WITH GRANT OPTION ]  Security_account: tài khoản (user) mà các quyền [ AS { group | role }] này ñược phép áp dụng. DBMS03 – Slides 5 DBMS03 – Slides 6 GRANT (tt) GRANT (tt) Permission: Nếu ñối tượng là Table, View thì permission là  SELECT, INSERT, DELETE, UPDATE, REFERENCES. Nếu ñối  Ví dụ 1: tượng là Stored Procedure thì permission là EXCUTE. GRANT CREATE DATABASE, CREATE  WITH GRANT OPTION: lựa chọn này cho phép tài khoản này ñược lấy các quyền trên các ñối tượng như vậy cho các tài TABLE TO user1, user2 khoản khác.  Ví dụ 2: Cấp phát quyền thực thi select  AS {group|role}: tên tài khoản trong CSDL hiện tại có quyền thực thi câu lệnh GRANT. Dùng lựa chọn này khi cần cấp phát trên bảng authors cho public quyền cho một nhóm người dùng và một người dùng không thuộc nhóm. GRANT SELECT  Một số câu lệnh không yêu cầu cấp phát quyền thực thi: BEGIN TRANSACTION, COMMIT TRANSACTION, PRINT, ON authors RAISERROR, ROLLBACK TRANSACTION, SAVE TRANSACTION, SET TO public -- public role DBMS03 – Slides 7 DBMS03 – Slides 8
  3. REVOKE REVOKE (tt)  Loại bỏ quyền vừa cấp phát, hoặc ñã bị từ chối cho một người dùng trong CSDL hiện tại.  Ví dụ: Bỏ quyền tạo bảng của user1 REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ] REVOKE CREATE TABLE FROM user1; REVOKE [ GRANT OPTION FOR ] { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( column [ ,...n ] ) ] ON { table | view } | ON { table | view } [ ( column [ ,...n ] ) ] | ON { stored_procedure | extended_procedure } | ON { user_defined_function } } { TO | FROM } security_account [ ,...n ] [ CASCADE ] [ AS { group | role } ] DBMS03 – Slides 9 DBMS03 – Slides 10 ROLE – Vai trò Bảng Ảo View 1. Thêm vai trò: • View là bảng ảo giúp giới hạn truy cập một số cột  Vai trò (role) là một kiểu người dùng trong CSDL với dòng trên các bảng dữ liệu. các quyền ñược cấp phát giống nhau. • Views ñảm bảo tính bảo mật bằng các giới hạn truy  sp_addrole [ @rolename= ] 'role' [ , [ cập sau: @ownername = ] 'owner' ] • Specific rows of a table trong ñó owner là tên chủ sở hữu của vai trò mới. • Specific columns of a table  Ví dụ: EXEC sp_addrole 'Managers' • Specific rows and columns of a table 2. Xóa ñi một vai trò: • The rows fetched using joins  sp_droprole [ @rolename = ] 'role‘ • Cú Pháp tạo View:  Ví dụ: EXEC sp_droprole 'Managers' CREATE VIEW ViewName AS DBMS03 – Slides 11 SELECT Col1, Col2 FROM Table1 WHERE Col = … DBMS03 – Slides 12
  4. Bảng Ảo View Bảng Ảo View Problem statement: Bạn thường xuyên phải thực hiện các • Thuận lợi của View: câu truy vấn dạng như sau: • Cung cấp dữ liệu cần thiết cho người dùng SELECT vFirstName, vSkill • Che dấu sự phức tạp của dữ liệu FROM Employee JOIN PositionSkill ON • Tổ chức dữ liệu từ nhiều tài nguyên không Employee.cCurrentPosition = PositionSkill.cPositionCode ñồng nhất JOIN Skill ON PositionSkill.cSkillCode = Skill.cSkillCode • Giảm kích cỡ của ñối tượng SELECT vFirstName, vLastName, vSkill FROM Employee JOIN PositionSkill ON Employee.cCurrentPosition =PositionSkill.cPositionCode JOIN Skill ON PositionSkill.cSkillCode = Skill.cSkillCode DBMS03 – Slides 13 DBMS03 – Slides 14 Bảng Ảo View Bảng Ảo View SELECT vFirstName, vLastName, vSkill Solution FROM Employee JOIN PositionSkill ON Employee.cCurrentPosition=PositionSkill.cPositionCode • Action: JOIN Skill ON PositionSkill.cSkillCode =Skill.cSkillCode • The tables from where the view derives its data are Employee, WHERE vFirstName = 'Angela‘ positionSkill, and Skill • The columns that are to be included in SELECT vFirstName, vLastName, vQualification, vSkill the view are vFirstName, vLastName, FROM Employee JOIN PositionSkill ON Employee.cCurrentPosition = PositionSkill.cPositionCode and vQualification from the Employee JOIN Skill ON PositionSkill.cSkillCode = Skill.cSkillCode table and vSkill from the Skill table DBMS03 – Slides 15 DBMS03 – Slides 16
  5. Bảng Ảo View Bảng Ảo View Solution Query on View: CREATE VIEW vwEmpSkill • SELECT vFirstName, vSkill FROM AS vwEmpSkill SELECT vFirstName, vLastName, vQualification, vSkill • SELECT vFirstName, vLastName, FROM Employee JOIN PositionSkill vSkill FROM vwEmpSkill ON Employee.cCurrentPosition = PositionSkill.cPositionCode JOIN Skill ON PositionSkill.cSkillCode = Skill.cSkillCode DBMS03 – Slides 17 DBMS03 – Slides 18 Bảng Ảo View Bảng Ảo View Create the view Altering, Dropping, and Renaming Views • A view can be created using the CREATE VIEW statement • Altering Views • You can modify a view by using the ALTER VIEW • Syntax statement CREATE VIEW view_name • Syntax [(column_name [, column_name]...)] ALTER VIEW view_name [(column_name)] [WITH ENCRYPTION] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION] AS select_statement [WITH CHECK OPTION] DBMS03 – Slides 19 DBMS03 – Slides 20
  6. Bảng Ảo View Hạn chế của View Altering, Dropping, and Renaming  Không thể chứa mệnh ñề COMPUTE Views (Contd.) hoặc COMPUTE BY  Không thể chứa mệnh ñề ORDER BY trừ • Dropping Views khi có TOP n • You can drop a view from a  Không thể chứa mệnh ñề INTO database by using the DROP VIEW statement  Không thể chứa các table tạm • Syntax  Có tối ña 1024 cột DROP VIEW view_name DBMS03 – Slides 21 DBMS03 – Slides 22 Bài tập áp dụng Một số loại sự cố  Loai (MaLoai, TenLoai)  Sự cố do thực hiện thao tác sai: thêm  SanPham (MaSP, TenSP, MaLoai) xóa sửa dữ liệu không ñúng  NhanVien (MaNV, HoTen, NgaySinh, Phai)  Trên CSDL thường không thể nhấn Crtl + Z  PhieuXuat (MaPX, NgayLap, MaNV) ñể undo lại một thao tác như insert,  ChiTietXuat (MaPX, MaSP, SoLuong) delete, update hay drop….  Tạo View vThongKe cho biết “mã sản phẩm,  Sự cố do hệ thống phần mềm tên sản phẩm, tổng số lượng xuất của từng  Sự cố do lỗi thiết bị sản phẩm trong năm 2009”. Lấy dữ liệu từ View này sắp xếp tăng dần theo cột TenSP. DBMS03 – Slides 23 DBMS03 – Slides 25
  7. Khôi Phục Dữ Liệu Cài ñặt trên SQL Server  Khôi phục sau sự cố từ một giao tác  Sao lưu (Backup)  Dựa vào file log  Khôi phục (Restore)  Khôi phục sau sự cố hệ thống  Dựa vào file backup  Khôi phục sau sự cố từ thiết bị lưu trữ  ??? DBMS03 – Slides 26 DBMS03 – Slides 27 Sao lưu (Backup) Sao lưu (Backup)  Full Database Backups : Copy tất cả data files trong một database. Tất cả những user data và database  objects như system tables, indexes, user-defined tables ñều ñược backup.  Differential Database Backups : Copy những thay ñổi trong tất cả data files kể từ lần full backup gần nhất.  File or File Group Backups : Copy một data file ñơn hay một file group.  Differential File or File Group Backups : Tương tự như differential database backup nhưng chỉ copy những thay ñổi trong data file ñơn hay một file group.  Transaction Log Backups : Ghi nhận một cách thứ tự tất cả các transactions chứa trong transaction log file kể Trong ví dụ này ta schedule một Full Database từ lần transaction log backup gần nhất. Loại backup này Backup vào ngày Chủ Nhật và Differential Backup cho phép ta phục hồi dữ liệu trở ngược lại vào một thời vào các ngày thứ Ba và Thứ Năm. Transaction Log ñiểm nào ñó trong quá khứ mà vẫn ñảm bảo tính ñồng nhất (consistent). Backup ñược schedule hằng ngày. DBMS03 – Slides 28 DBMS03 – Slides 29
  8. Thuật ngữ về Backup Backup Thuật Giải Thích  Chúng ta có thể tạo một backup device cố ñịnh Ngữ (permanent) hay tạo ra một backup file mới cho Quá trình copy toàn bộ hay một phần của database, transaction log, file Backup hay file group hình thành một backup set. Backup set ñược chứa trên mỗi lần backup. Thông thường chúng ta sẽ tạo backup media (tape or disk) bằng cách sử dụng một backup device (tape drive name hay physical filename) một backup device cố ñịnh ñể có thể dùng ñi Backup Một file vật lý (như C:\SQLBackups\Full.bak) hay tape drive cụ thể (như dùng lại ñặc biệt cho việc tự ñộng hóa công việc Device \\.\Tape0) dùng ñể record một backup vào một backup media. backup. Backup  Ðể backup database bạn có thể dùng Backup File chứa một backup set File Disk hay tape ñược sử dụng ñể chứa một backup set. Backup media có Wizard hoặc click lên trên database muốn Backup Media thể chứa nhiều backup sets (ví dụ như từ nhiều SQL Server 2000 backup sau ñó Right-click All Tasks  backups và từ nhiều Windows 2000 backups). Backup Database Backup Một bộ backup từ một lần backup ñơn ñược chứa trên backup media. Set DBMS03 – Slides 30 DBMS03 – Slides 31 Ví dụ Backup Phục Hồi (Restore)  Full Recovery Model: Ðây là model cho phép phục hồi dữ liệu với ít rủi ro nhất. Nếu một database ở trong mode này thì tất cả các hoạt ñộng không chỉ insert, update, delete mà kể cả insert bằng Bulk Insert, hay bcp ñều ñược log vào transaction log file. Khi có sự cố thì ta có thể phục hồi lại dữ liệu ngược trở lại tới một thời ñiểm trong quá khứ. Khi data file bị hư nếu ta có thể backup ñược transaction log file thì ta có thể phục hồi database ñến thời ñiểm transaction gần nhất ñược commited.  Bulk-Logged Recovery Model: Ở mode này các hoạt ñộng mang tính hàng loạt như Bulk Insert, bcp, Create Index, WriteText, UpdateText chỉ ñược log minimum vào transaction log file ñủ ñể cho biết là các hoạt ñộng này có diễn ra mà không log toàn bộ chi tiết như trong Full Recovery Mode. Các hoạt ñộng khác như Insert, Update, Delete vẫn ñược log ñầy ñủ ñể dùng cho việc phục hồi sau này.  Simple Recovery Model: Ở mode này thì Transaction Log File ñược truncate thường xuyên và không cần backup. Với mode này bạn chỉ có thể phục hồi tới thời ñiểm backup gần nhất mà không thể phục hồi tới một thời ñiểm trong quá khứ. DBMS03 – Slides 32 DBMS03 – Slides 33
  9. Phục hồi (Restore) Phục hồi (Restore)  Trước khi restore database  Nếu bạn restore từ một ta phải xác ñịnh ñược thứ instance khác của SQL Server tự file cần restore. Các hay từ một server khác bạn có thông tin này ñược SQL chọn From device option và Server chứa trong msdb chọn backup device (file database và sẽ cho ta biết backup) tương ứng . backup device nào, ai backup vào thời ñiểm nào.  Lưu ý nếu bạn muốn Sau ñó ta tiến hành overwrite database có sẵn với restore. Ðể restore bạn data ñược backup bạn có thể Right-click All chọn option Force restore Tasks Restore over existing database như database hình vẽ sau: DBMS03 – Slides 34 DBMS03 – Slides 35 Tóm lại Câu hỏi  An toàn dữ liệu  Phân biệt: thông tin (information), dữ liệu (data) và tri thức (knowlegde)  Các loại sự cố thường xảy ra  Transaction là gì?  Nếu không sao lưu dữ liệu thường xuyên thì  Sao lưu và phục hồi dữ liệu trên SQL gặp phải vấn ñề gì? Server  Một số database object trong SQL Server? Table, View, Store, Trigger, Index, User, (Cursor)  Một số action object trong SQL Server? Backup, Restore, Transaction, DTS, BCP DBMS03 – Slides 36 DBMS03 – Slides 37
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2