Tải bản đầy đủ (.pdf) (26 trang)

bài giảng truy vấn cơ sở dữ liệu Session 04

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.05 MB, 26 trang )

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


×