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