Quan Ly User SQL

Preview:

Citation preview

Bài 4

Quản lý User và Security

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.

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

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

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.

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

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

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'

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.

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

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

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

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.

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

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

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

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

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:

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.

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

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

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.

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:

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

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.

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.