Upload
clubxiangqi
View
31
Download
0
Embed Size (px)
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.