26
Bài 4 Quản lý User và Security

Quan Ly User SQL

Embed Size (px)

Citation preview

Page 1: Quan Ly User SQL

Bài 4

Quản lý User và Security

Page 2: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 2 trong 26

Nhắc lại

Nhắc lại về Transaction và Lock: Transactions Property, classification, isolation và

isolation level của transaction Locks và database deadlock Giải quyết các deadlock.

Page 3: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 3 trong 26

Mục tiêu Mô tả tính bảo mật của SQL Server Các chế độ đăng nhập(login) của SQL Server Sử dụng T-SQL để quản lý login Diễn tả các khái niệm về database user Sử dụng system stored procedure để quản lý

database user Diễn tả các khái niệm về database role Sử dụng system stored procedure để quản lý role Diễn tả khái niệm permission Diễn tả cách thực thi một authorization đơn giản Diễn tả cách lấy lại các permission trên các đối

tượng

Page 4: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 4 trong 26

Giới thiệu về bảo mật của SQL Server

1. Authentication

2. Khả năng cho phép truy nhập CSDL

3.Chỉ ra các cho phép trên cáci tượng của CSDL

Mô hình bảo mật 3 mức

Page 5: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 5 trong 26

Quản lý Login

SQL Server kiểm tra user ở hai mức độ:

Login authentication Kiểm tra các cho phép

trên user database.

Page 6: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 6 trong 26

Login Authentication

Có 3 cách sử dụng login authentication trong SQL Server:

SQL Server Authentication Windows NT

Authentication Mixed Mode Authentication

Page 7: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 7 trong 26

Tạo các login sử dụng Enterprise Manager

Page 8: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 8 trong 26

Những Stored procedure để thêm và

xóa các login

Để tạo một login, chúng ta có thể sử dụng câu lệnh sau:

EXEC sp_addlogin 'Arwen', 'princess'

Để xóa một login khi không cần thiết chúng ta có thể viết như sau:

EXEC sp_droplogin 'Arwen'

Page 9: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 9 trong 26

Quản lý User Một user identifier (ID) xác định một user

trong database. Các database user account là duy nhất

trong mỗi database. User IDs được định nghĩa bởi thành viên

của db_owner fixed database role. Một user trong database được nhận dạng

bởi user ID, chứ không phải là login ID. Bản thân các login ID không cung cấp

quyền truy nhập đến các đối tượng trong các database.

Page 10: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 10 trong 26

Ví dụVí dụ dưới đây chỉ ra cách gắn một Windows 2000

account với một login và cách gán quyền truy nhập:

USE masterGOsp_grantlogin 'OnlineDOMAIN\Arwen'GOsp_defaultdb @loginame = 'OnlineDOMAIN\Arwen', defdb = 'books'GOUSE booksGOsp_grantdbaccess 'OnlineDOMAIN\Arwen', 'Arwen'GO

Page 11: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 11 trong 26

Các stored procedure để quản lý login và user

sp_grantlogin: cho phép Windows NT/2000 user hoặc group account kết nối với SQL Server sử dụng Windows authentication.

sp_defaultdb: thay đổi database mặc định của một login.

sp_grantdbaccess: thêm một database security account và gán quyền truy nhập.

sp_revokedbaccess: xóa một security account khỏi database.

Users

Page 12: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 12 trong 26

SQL Server RoleCác Role là cách chính để phân quyền cho

các user.

Server Roles Database Roles

SQL Server Roles

Page 13: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 13 trong 26

Public Role

A public role là một loại database role đặc biệt.

Nó luôn có trong tất cả các database. Không thể xóa nó. Tất cả các user đều thuộc về Public role, kể

cả sa account.

Page 14: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 14 trong 26

Permission của các database role

Mỗi database role có những permission sau:

db_owner db_securityadmin db_accessadmin db_ddladmin db_backupoperator db_datareader db_denydatawriter db_denydatareader

Page 15: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 15 trong 26

Các Server Role

Các server role của SQL Server 2000:

sysadmin securityadmin serveradmin setupadmin processadmin diskadmin dbcreator

Page 16: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 16 trong 26

Thêm các thành viên vào một role

sp_addrole 'Teacher'GOsp_addrole 'Student'GOsp_addrole 'StudentTeacher'GOsp_addrolemember 'Teacher', 'NETDOMAIN\Peter'GOsp_addrolemember 'Teacher', 'NETDOMAIN\Cathy'GOsp_addrolemember 'StudentProfessor',

'NETDOMAIN\Diane'GO

Page 17: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 17 trong 26

Thêm các thành viên vào một

role (tiếp)…

sp_addrolemember 'Student', 'NETDOMAIN\Mel'GOsp_addrolemember 'Student', 'NETDOMAIN\Jim'GOsp_addrolemember 'Student', 'NETDOMAIN\Lara'GOGRANT SELECT ON StudentGradeView TO StudentGOGRANT SELECT, UPDATE ON ProfessorGradeView TO

ProfessorGO

Page 18: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 18 trong 26

Các Permission

Permission là các cho phép đối với user khi truy nhập CSDL. Có hai kiểu permission:

Page 19: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 19 trong 26

Các kiểu Permission Object permissions điều

khiển việc truy nhập dữ liệu trong bảng, view và quyền thực thi các stored procedure.

Statement permissions điều khiển quyền tạo và xóa các đối tượng trong database.

Page 20: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 20 trong 26

Các Object permission

Kiểu đối tượng Thao tác được phép Table SELECT, UPDATE,

DELETE, INSERT, REFERENCE

Column SELECT, UPDATE View SELECT, UPDATE,

INSERT, DELETE Stored procedure EXECUTE

Page 21: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 21 trong 26

Các đối tượng của SQL Server Database

Page 22: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 22 trong 26

Database và object owner

User tạo ra một database được gọi là object owner. User này phải có quyền tạo database.

Page 23: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 23 trong 26

Quản lý các permission

SQL Server sử dụng lệnh GRANT, REVOKE, và DENY để quản lý

permission. GRANT:

REVOKE: DENY:

Page 24: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 24 trong 26

Tóm tắt SQL Server kiểm tra user ở hai mức:

Login authentication Quyền truy nhập trên user database.

Authentication identifies là người sử dụng login account để kết nối với SQL Server.

SQL Server có ba cơ chế xác nhận sau: SQL Server authentication Windows NT authentication Mixed mode authentication.

Sử dụng Enterprise Manager có thể quản lý các login bằng Wizard

Có thê tạo các login bằng sp_addlogin stored procedure.

SQL Server có 2 kiểu user accounts: System user và Database user

Page 25: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 25 trong 26

Tóm tắt (tiếp..)

sp_grantdbaccess và sp_revokedbaccess thêm và xóa quyền truy nhập

Role là cách để phân quyền. SQL Server có các database role và server role. Mặc định, SQL Server 2000 có 10 database roles. Có thể tạo database role sử dụng Enterprise

Manager hoặc sử dụng system stored procedures.

Có thể thêm Role bằng Enterprise Manager hoặc system stored procedure sp_addrole. Có thể thêm thành viên vào role bằng sp_addrolemember stored procedure.

Page 26: Quan Ly User SQL

Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 26 trong 26

Tóm tắt (tiếp)…

Các đối tượng của Database giúp cấu trúc dữ iiệu và dịnh nghĩa các toàn vẹn dữ liệu.

Permission cho phép user truy nhập database. Có hai kiểu permission: Object và Statement.

Object permissions điều khiển việc truy nhập dữ liệu trong bảng, view và quyền thực thi các stored procedure.

Statement permissions điều khiển quyền tạo và xóa các đối tượng trong database.

User tạo database gọi là object owner. SQL Server sử dụng các lệnh GRANT, REVOKE,

và DENY để quản lý permission.