Sau khi cấp Login account để truy cập vào SQL Server bạn cần cấp cho Login account này quyền là một user troy cập một/ nhiều Database.. o Một Login account có thể trở thành user của nhiề
Trang 1P hân Quyền Trong
Môn học: An Toàn và Bảo Mật Hệ Thống Thông Tin
Gv: Ths Trương Hoài Phan
Trang 21 Giới thiệu
2 Quản lí việc đăng nhập
3 Quản lí người dùng
4 Quản lí phân quyền
5 Demo
Trang 3Bảo mật trong SQL server gồm ba lớp:
◦ Login security: Kiểm soát ai có thể log vào SQl server.
◦ Database access security : kiểm soát ai có thể đăng nhập vào Database của
SQL server
◦ Permission security: Kiểm soát một user có thể thực hiện thao tác gì trên
Database
1 Giới thiệu
Trang 41 Giới thiệu
Trang 5Hai chế độ chứng thực:
◦ Mixed security Mode: Kết nối với SQL server 2008
bằng cách dùng Windows Authentication hoặc SQL
server Authentication
◦ Windows authentication mode: Chỉ có thể kết nối
với SQL server 2000 bằng Windows Authentication,
Windows NT kiểm tra an toàn tất cả các kết nối đến
SQL server
2 Quản lí việc đăng nhập
Trang 6Thao tác: Chuyển đổi chế độ chứng thực
2 Quản lí việc đăng nhập
Trang 7Tạo Login Account
Hai Phương pháp ứng với hai loại chứng thực:
• Tạo một Windows account bằng hai cách:
Thao tác trực tiếp trên giao diện: chọn Sercurity.Login.New login
Dùng lệnh: sp_grantlogin ‘login’
• Tạo mới một SQL logon account bằng hai cách:
Thao tác trực tiếp trên giao diện: chọn Sercurity.Login.New login
Dùng lệnh: sp_addlogin ‘login’, ‘password’, ‘database_name’
2 Quản lí việc đăng nhập
Trang 8Sau khi cấp Login account để truy cập vào SQL Server bạn cần cấp cho
Login account này quyền là một user troy cập một/ nhiều Database.
o SQL Server lưu các user của Database trong table sysusers.
o Một Login account có thể trở thành user của nhiều Database với những quyền hạn và mang nhiều user name khác nhau Mặc định user name trùng tên với Login account.
3 Quản lí người dùng
Trang 9Hai User đặc biệt:
◦ dbo: một user có tất cả các quyền trên Database.
◦ guest user: Một Login account truy xuất đến một instance của SQL
Server 2008, nhưng không có user account để truy xuất 1 Database cụ
thể, thì có thể được truy xuất đến Database như một người khách (guest
user)
3 Quản lí người dùng
Trang 10◦ Khai báo một user
Dùng icon <tên Database>.User trong giao diện.
Dùng thuộc tính của Login account trong giao diện.
Dùng lệnh sp_grantdbaccess loginname.
◦ Gán user là thành viên của Database
Dùng thuộc tính của Database role trong giao diện.
Dùng thuộc tính của Login account trong giao diện.
Dùng lệnh sp_addrolemember database_role, database_user_account
3 Quản lí người dùng
Trang 11• Kiểm soát user có thể làm được gì trên database bằng sử dụng:
Các Database role
Cấp quyền cho user thao tác trên object và statement
• Các cơ chế cấp quyền:
Dùng login account được tạo sẵn bởi hệ thống và được gán role default như: sa
được gán sysadmin fixed server role.
Chỉ định 1 login account là user của một Database: mặc định có quyền
thuộc public database role.
Sử dụng role/cơ chế role bao trùm: Sysadmin bao trùm db_ower
Sử dụng các lệnh cấp quyền cho user thao tác trên object và statement như
4 Quản lí phân quyền
Trang 12• Role là một công cụ cho phép
cấp quyền cho một nhóm
User thay vì thực hiện trên
từng user.
• Có 2 loại Roles:
Fixed role
User-defined Database role
• Hoặc có thể phân biệt:
Role mức server
4 Quản lí phân quyền
Database Roles
Server Roles
Trang 13o User Defined Roles: bạn phải là thành viên của
db_securiadmin, hay db_owner, hay sysadmin, … để có thể
tạo role.
o Dùng T-SQL tạo role:
Bước 1: Định nghĩa một role (Một user_defined database role
được định nghĩa trong một DataBase)
sp_addrole role_name, role_owner
Bước 2: Gán quyền về statement và object cho role
Bước 3: Gán các role là thành viên của role
4 Quản lí phân quyền
Trang 14o Quyền cho phép người dùng thực hiện cách hành động trong
Database Có hai loại quyền:
Object permission (Đối tượng): Kiểm soát một User /
role có thể thực thi hành động gì trên một object cụ thể
trong Database
4 Quản lí phân quyền
DELETE table , view
SELECT table, view, và column INSERT table , view
EXECUTE stored procedure UPDATE table, view, và column
Trang 15Statement (Phát biểu): kiểm soát một User/role có thể thực hiện
được lệnh nào sau đây:
CREATE DATABASE
CREATE DEFAULT
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE VIEW
BACKUP DATABASE
BACKUP LOG
4 Quản lí phân quyền
Trang 16Các thao tác về quyền:
◦ Lệnh Cấp Quyền (grant): Nếu bạn cấp quyền cho User và User là thành viên của một
Role Các quyền mà User có được hợp lại từ hai phía
Granting Statement Permission :
GRANT { ALL | statement [ , n ] } TO user_name [, n ]
Granting Object Permission :
GRANT { { ALL | permission [ , n ] } [ (column_name [ , n ] ) ]
ON { table | view | stored_procedure |extended_procedure |
user_defined_function }} TO user_name [ , n ]
4 Quản lí phân quyền
Trang 17◦ Lệnh chối từ (deny): Ngăn User sử dụng quyền và không
cho phép User có cơ hội thừa hưởng do là thành viên của
một Role.
Denying Statement Permission :
DENY { ALL | statement [ , n ] } TO user_name [, n ]
Denying Object Permission :
DENY { { ALL | permission [ , n ] } [ ( column_name[
, n ] ) ]
ON { table | view | stored_procedure
|extended_procedure | user_defined_function }}
TO user_name [ , n ]
4 Quản lí phân quyền
Trang 18◦ Lệnh hủy (revoke): Hủy quyền đã cấp grant hay từ chối deny
Revoking Statement Permission :
REVOKE { ALL | statement [ , n ] } FROM user_name [ , n
]
Revoking Object Permission :
REVOKE { { ALL | permission [ , n ] } [ (column_name [ , n ]
) ]
ON { table | view | stored_procedure |extended_procedure
| user_defined_function }}
{TO | FROM} user_name [ , n ]
4 Quản lí phân quyền
Trang 195 Demo
Trang 20P hân Quyền Trong
Q &
A