Xem mẫu

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 Các cơ chế an toàn dữ liệu: Mã hóa dữ liệu Phân quyền truy cập Phân quyền truy cập Tạo bảng ảo View Cấp phát quyền cho người dùng: Dùng 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 GRANT Cho phép người dùng có thể thực thi một số câu lệnh trên CSDL hiện tại. Quyền trên câu lệnh: GRANT {ALL | statement [,..n]} TO security_account[,..n] Statement: câu lệnh ñược phép thực thi, là một trong các câu lệnh CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW, BACKUP DATABASE, BACKUP LOG. Security_account: tài khoản (user) mà các quyền này ñược phép áp dụng. DBMS03 – Slides 5 GRANT (tt) GRANT (tt) Quyền trên ñối tượng: GRANT { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( column [ ,...n ] ) ] ON { table| view } | ON { table view } [ ( column [ ,...n ] ) ] | ON { stored_procedure| extended_procedure } | ON { user_defined_function} } TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role }] DBMS03 – Slides 6 GRANT (tt) Permission: Nếu ñối tượng là Table, View thì permission là SELECT, INSERT, DELETE, UPDATE, REFERENCES. Nếu ñối tượng là Stored Procedure thì permission là EXCUTE. 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 khoản khác. 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 quyền cho một nhóm người dùng và một người dùng không thuộc nhóm. 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, RAISERROR, ROLLBACK TRANSACTION, SAVE TRANSACTION, SET Ví dụ 1: GRANT CREATE DATABASE, CREATE TABLE TO user1, user2 Ví dụ 2: Cấp phát quyền thực thi select trên bảng authors cho public GRANT SELECT ON authors TO public -- public role DBMS03 – Slides 7 DBMS03 – Slides 8 REVOKE 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. REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ] 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 ] REVOKE (tt) Ví dụ: Bỏ quyền tạo bảng của user1 REVOKE CREATE TABLE FROM user1; [ AS { group | role } ] DBMS03 – Slides 9 DBMS03 – Slides 10 ROLE – Vai trò 1. Thêm vai trò: Vai trò (role) là một kiểu người dùng trong CSDL với các quyền ñược cấp phát giống nhau. sp_addrole [ @rolename= ] `role` [ , [ @ownername = ] `owner` ] trong ñó owner là tên chủ sở hữu của vai trò mới. Ví dụ: EXEC sp_addrole `Managers` 2. Xóa ñi một vai trò: sp_droprole [ @rolename = ] `role‘ Ví dụ: EXEC sp_droprole `Managers` Bảng Ảo View • View là bảng ảo giúp giới hạn truy cập một số cột dòng trên các bảng dữ liệu. • Views ñảm bảo tính bảo mật bằng các giới hạn truy cập sau: • Specific rows of a table • Specific columns of a table • Specific rows and columns of a table • The rows fetched using joins • Cú Pháp tạo View: CREATE VIEW ViewName AS DBMS03 – Slides 11 SELECT Col1, Col2 FROM Table1 WHERE Col = … DBMS03 – Slides 12 Bảng Ảo View Bảng Ảo View • Thuận lợi của View: • Cung cấp dữ liệu cần thiết cho người dùng • Che dấu sự phức tạp của dữ liệu • Tổ chức dữ liệu từ nhiều tài nguyên không ñồng nhất • Giảm kích cỡ của ñối tượng DBMS03 – Slides 13 Problem statement: Bạn thường xuyên phải thực hiện các câu truy vấn dạng như sau: SELECT vFirstName, vSkill FROM Employee JOIN PositionSkill ON Employee.cCurrentPosition = PositionSkill.cPositionCode JOIN Skill ON PositionSkill.cSkillCode = Skill.cSkillCode SELECT vFirstName, vLastName, vSkill FROM Employee JOIN PositionSkill ON Employee.cCurrentPosition =PositionSkill.cPositionCode JOIN Skill ON PositionSkill.cSkillCode = Skill.cSkillCode DBMS03 – Slides 14 Bảng Ảo View SELECT vFirstName, vLastName, vSkill Bảng Ảo View Solution FROM Employee JOIN PositionSkill ON Employee.cCurrentPosition=PositionSkill.cPositionCode JOIN Skill ON PositionSkill.cSkillCode =Skill.cSkillCode WHERE vFirstName = `Angela‘ • Action: • The tables from where the view derives its data are Employee, positionSkill, and Skill SELECT vFirstName, vLastName, vQualification, vSkill FROM Employee JOIN PositionSkill ON Employee.cCurrentPosition = PositionSkill.cPositionCode JOIN Skill ON PositionSkill.cSkillCode = Skill.cSkillCode • The columns that are to be included in the view are vFirstName, vLastName, and vQualification from the Employee table and vSkill from the Skill table DBMS03 – Slides 15 DBMS03 – Slides 16 Bảng Ảo View Solution CREATE VIEW vwEmpSkill AS SELECT vFirstName, vLastName, vQualification, vSkill FROM Employee JOIN PositionSkill ON Employee.cCurrentPosition = PositionSkill.cPositionCode JOIN Skill ON PositionSkill.cSkillCode = Skill.cSkillCode Bảng Ảo View Query on View: • SELECT vFirstName, vSkill FROM vwEmpSkill • SELECT vFirstName, vLastName, vSkill FROM vwEmpSkill DBMS03 – Slides 17 Bảng Ảo View Create the view • A view can be created using the CREATE VIEW statement • Syntax CREATE VIEW view_name [(column_name [, column_name]...)] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION] DBMS03 – Slides 19 DBMS03 – Slides 18 Bảng Ảo View Altering, Dropping, and Renaming Views • Altering Views • You can modify a view by using the ALTER VIEW statement • Syntax ALTER VIEW view_name [(column_name)] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION] DBMS03 – Slides 20 ... - tailieumienphi.vn
nguon tai.lieu . vn