Quản lý User và Security
Bài 4
Nhắc lại
Nhắc lại về Transaction và Lock:
n
n
n
n
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 / 2 trong 26
Mục tiêu
n
n
n
n
n
n
n
n
n
n
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 / 3 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 / 4 trong 26
Quản lý Login
n
n
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 / 5 trong 26
Login Authentication
Có 3 cách sử dụng login
authentication trong SQL
Server:
n
n
n
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 / 6 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 / 7 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 / 8 trong 26
Quản lý User
n
n
n
n
n
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 / 9 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 master
GO
sp_grantlogin 'OnlineDOMAIN\Arwen'
GO
sp_defaultdb @loginame =
'OnlineDOMAIN\Arwen', defdb = 'books'
GO
USE books
GO
sp_grantdbaccess 'OnlineDOMAIN\Arwen',
'Arwen'
GO
Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 10 trong 26
Các stored procedure để
quản lý login và user
n
n
n
n
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 / 11 trong 26
SQL Server Role
Các Role là cách chính để phân quyền cho các
user.
SQL Server Roles
Server Roles
Database Roles
Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 12 trong 26
Public Role
A public role là một loại database role đặc biệt.
n Nó luôn có trong tất cả các database.
n Không thể xóa nó.
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 / 13 trong 26
Permission của các
database role
Mỗi database role có những
permission sau:
n
n
n
n
n
n
n
n
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 / 14 trong 26
Các Server Role
Các server role của SQL Server
2000:
n
n
n
n
n
n
n
sysadmin
securityadmin
serveradmin
setupadmin
processadmin
diskadmin
dbcreator
Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 15 trong 26
Thêm các thành viên vào một
role
sp_addrole 'Teacher'
GO
sp_addrole 'Student'
GO
sp_addrole 'StudentTeacher'
GO
sp_addrolemember 'Teacher', 'NETDOMAIN\Peter'
GO
sp_addrolemember 'Teacher', 'NETDOMAIN\Cathy'
GO
sp_addrolemember 'StudentProfessor', 'NETDOMAIN\Diane'
GO
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 (tiếp)…
sp_addrolemember 'Student', 'NETDOMAIN\Mel'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Jim'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Lara'
GO
GRANT SELECT ON StudentGradeView TO Student
GO
GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor
GO
Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 17 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 / 18 trong 26
Các kiểu Permission
n
n
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 / 19 trong 26
Các Object permission
Kiểu đối tượng
Table
Column
View
Stored procedure
Thao tác được phép
SELECT, UPDATE,
DELETE, INSERT,
REFERENCE
SELECT, UPDATE
SELECT, UPDATE,
INSERT, DELETE
EXECUTE
Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 20 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 / 21 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 / 22 trong 26
Quản lý các permission
SQL Server sử dụng lệnh GRANT,
REVOKE, và DENY để quản lý permission.
n GRANT:
a
n
REVOKE:
x
n
DENY:
x
Thiết kế CSDL và thực thi với SQL Server 2000 / Bài 4 / 23 trong 26
Tóm tắt
n
SQL Server kiểm tra user ở hai mức:
n
n
n
n
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:
n
n
n
n
n
n
Login authentication
Quyền truy nhập trên user database.
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 / 24 trong 26
Tóm tắt (tiếp..)
n
n
n
n
n
n
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 / 25 trong 26