1. Trang chủ
  2. » Công Nghệ Thông Tin

SQL BẢO MẬT PHÂN QUYỀN

52 1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 1,4 MB

Nội dung

BẢO MẬT• Mục đích chính: bảo vệ dữ liệu• Bảo mật: các công cụ điều khiển việc truy cập dữ liệu• Rủi ro có thể xảy ra: someone gain unauthorizedaccessMICROSOFT SQL SERVERFACULTY OF INFORMATION TECHNOLOGYBẢO MẬT TRONG SQL SERVER• Bảo mật trong SQL Server gồm 3 lớp:• Login security: kiểm soát ai có thể log vào SQL Server• Database access security: kiểm soát ai có thể truy cậpvào một DB cụ thể trên server• Permission security: kiểm soát một user có thể thực hiệnthao tác gì trên DBMICROSOFT SQL SERVERFACULTY OF INFORMATION TECHNOLOGYBẢO MẬT T

Trang 1

BẢO MẬT & PHÂN QUYỀN

GV: Nguyễn Thị Cẩm Hương

Trang 2

TẦM QUAN TRỌNG CỦA

BẢO MẬT

• Mục đích chính: bảo vệ dữ liệu

• Bảo mật: các công cụ điều khiển việc truy cập dữ liệu

• Rủi ro có thể xảy ra: someone gain unauthorized

access

Trang 3

BẢO MẬT TRONG SQL SERVER

• Bảo mật trong SQL Server gồm 3 lớp:

• Login security: kiểm soát ai có thể log vào SQL Server

• Database access security: kiểm soát ai có thể truy cập vào một DB cụ thể trên server

• Permission security: kiểm soát một user có thể thực hiện thao tác gì trên DB

Trang 4

BẢO MẬT TRONG CSDL

Trang 5

LOGIN SECURITY

• Có 2 loại chứng thực:

• Windows Authentication

• Users chỉ cần được cấp account trong Windows server

• SQL Server dựa vào Windows để chứng thực cho user

• Cách kết nối này gọi là kết nối tin tưởng, dựa vào ủy nhiệm bảo mật của windows

Trang 6

LOGIN SECURITY-CHẾ ĐỘ CHỨNG THỰC

• Mixed Security Mode

• Windows authentication mode

• Thay đổi chế độ chứng thực:

• Launch SQL Server Management Studio

1 Ơ Object Explorer chọn server

2 Right-click trên server, chọn Properties

3 Dưới ‘‘Select a page’’, chọn Security

4 Mục ‘‘Server authentication,’’ chọn

authentication thích hợp

Trang 7

• Windows logins:

• Thích hợp với tài khoản user hay group lưu trữ trong Aactive Directory hay local Security Accounts Manager (SAM) database.

• SQL logins:

• Dùng cho các đối tượng không có tài khoản windows

• Dựa vào thông tin lưu trữ và quản lý tài khoản của SQL Server

Trang 8

TẠO LOGINS trong Management studio

1 Ở Object Explorer, chọn server

2 Mở thư mục Security

3 R_Click Logins và chọn ‘‘New Login.’’

4 Tại hộp thoại Login–New , nhập tên login muốn tạo

hoặc click Search button chọn account Windows

5 Nếu tạo SQL Login, chọn ‘‘SQL Server authentication’’

6 Khi chọn ‘‘SQL Server authentication,’’ ta có thể chọn

không kiểm tra password policies

7 Chọn CSDL và ngôn ngữ mặc định

Trang 10

Sử dụng CREATE LOGIN

• Tạo mới login cho user có tên TINTIN trên MYPC server:

CREATE LOGIN [MYPC\TIN] from Windows;

• Tạo mới login cho Windows group

CREATE LOGIN [MYPC\Family] from Windows;

• Tạo mới login cho SQL SERVER LOGIN cho user MISA:

CREATE LOGIN MISA WITH PASSWORD=‘Misa12@34p@ass’;

Trang 11

LƯU Ý KHI TẠO SQL SERVER LOGIN

• Không để trống trường Password hoặc sử dụng các giá

trị “Password”, “Admin”, “Administrator”, “sa”, hay

Trang 12

QUYỀN (PERMISSION)

• Các quyền chuẩn của các đối tượng SQL Server

Trang 13

VAI TRÒ (ROLES)

• Vai trò: tập các quyền

• Dùng để gán cho một người dùng hoặc nhóm người dùng

• Các vai trò mặc định của SQL Server

• Vai trò Server mặc định (Fixed Server Role)

• Vai trò CSDL mặc định (Fixed Database Role)

• Có quyền định nghĩa thêm các vai trò mới

• Mỗi vai trò được gán một tập quyền VD:

• Vai trò dbcreator có thể thực thi các câu lệnh:

CREATE/ALTER/DROP DATABASE/RESTORE DATABASE

Trang 14

VAI TRÒ SERVER (SERVER ROLES)

• Vai trò Server mặc định bao gồm những người

dùng quản trị Server

sysadmin Có thể thực hiện mọi thao tác trên server Theo mặc định,

tất cả thành viên trong nhóm Windows BUILTIN\Administrators đều là thành viên của vai trò này.

securityadmin Có thể quản lý ID và mật khẩu đăng nhập cho server, đồng

thời có thể cấp, từ chối và thu hồi quyền trên cơ sở dữ liệu dbcreator Có thể tạo, thay đổi, xóa và khôi phục cơ sở dữ liệu.

Trang 15

VAI TRÒ CSDL (Database ROLES)

Db_owner Có tất cả các quyền đối với CSDL

Db_accessadmin Có quyền thêm hoặc xóa một LoginID của CSDL

Db_securityadmin Có thê quản trị quyền đối tượng, quyền CSDL, Vai trò, các

thành viên của Vai trò Db_datawriter Có thể thêm, xóa, cập nhật dữ liệu trên toàn bộ các bảng

trong CSDL Db_datareader Có thể truy xuất dữ liệu từ tất cả các bảng trong CSDL

Db_denydatawriter Không thể thêm, xóa, cập nhật dữ liệu trên toàn bộ các

bảng trong CSDL Db_denydatareader Không thể truy xuất dữ liệu từ tất cả các bảng trong CSDL Db_backupoperator Có thể thực hiện sao lưu CSDL và chạy các kiểm tra tính

nhất quán trên CSDL

Trang 16

TẠO MỘT LOGIN VỚI

Fixed server role

• sp_addsrvrolemember [ @loginame= ] ‘login’ , [

@rolename = ] ‘role’

create

USE master CREATE LOGIN Ted WITH PASSWORD = ‘P@ssw0rd’;

GO EXEC sp_addsrvrolemember ‘Ted’, ‘securityadmin’;

GO

drop

USE master EXEC sp_dropsrvrolemember ‘Ted’, ‘securityadmin’;

GO

Trang 17

Database Users

- Tạo mới DB Users trong Management Studio

1 Ở Object Explorer, mở Databases

2 Chọn CSDL (vd: Adventuresworks)

3 Mở Security

4 R_Click Users và chọn ‘‘New User.’’

5 Nhập tên user vào User Name box VD: Carol

6 Nhập tên user (Carol) trong ‘‘Login name’’ box, hoặc

chọn tên login bằng cách click ‘‘ ’’ button

7 Nhập tên nhánh CSDL( Sales) trong ‘‘Default

schema’’ box

8 Click OK

Trang 18

Tạo mới DB Users bằng T-SQL

CREATE USER name [{{FOR | FROM} source | WITHOUT

Trang 19

Ví dụ

USE master;

CREATE LOGIN [AughtEight\Bob] FROM WINDOWS;

USE AdventureWorks2008;

CREATE USER BillyBob FOR LOGIN [AughtEight\Bob]

WITH DEFAULT_SCHEMA = sales;

Trang 20

VỚI DABASE USER TRONG SQL

SERVER 2008

Trang 24

DATA CONTROL LANGUAGE - GRANT

• GRANT : gán quyền trên câu lệnh

GRANT { ALL | statement [ , n ] }

[ ( column [ , n ] ) ] ON { table | view }

| ON { table | view } [ ( column [ , n ] ) ]

Trang 25

DATA CONTROL LANGUAGE – DENY-REVOKE

• Cú pháp:

DENY <permissions>[ON <object>] TO <user/role>

• Ví dụ:

Use pubs DENY select, insert, update ON titles TO faculty

• Lệnh REVOKE dùng để thu hồi lại quyền đã đuợc cấp hay từ

chối từ 1 user của CSDL hiện hành

Trang 26

In Active Directory:

• Tạo Windows user cho mỗi cá nhân.

• Tạo Windows groups đại diện cho nhóm công việc hay phòng ban

• Add các Windows users vào Windows groups.

In SQL Server:

• Tạo login cho Windows groups Nếu dùng SQL Server authentication,

bỏ qua bước Active Directory trên và tạo SQL Server authentication logins ở đây)

• Tạo database user cho login.

• Tạo một hoặc nhiều user-defined database roles, mỗi user đại diện cho một chức năng VD: NV_Kiemtoan, NV_Nhansu

• Thêm database users vào một hay nhiều user-defined database

roles.

Trang 27

Overview of Database Objects

• Clustered

• Non-clustered

Views

• Logical result sets

• Based on SELECT queries

Programmability

• Stored Procedures

Trang 29

Chỉ mục (Indexing)

• Cơ bản về chỉ mục

• Các loại chỉ mục

• So sánh tính năng các loại chỉ mục

• Tối ưu hóa sử dụng chỉ mục

• Các kỹ thuật sử dụng Index nâng cao

• Bảo trì Index

Trang 30

• Có cấu trúc dữ liệu dạng B-TREE (khoảng cách từ

gốc đến mọi nút lá tương đương nhau)

Trang 32

Tại sao cần Index?

• Nâng cao hiệu năng thực hiện câu lệnh

• Giảm khóa trên table

• Thực thi ràng buộc Unique constraint

• 2 loại Index thông dụng: Clustered index và

nonclustered index

Trang 33

Clustered index

• Sắp xếp bảng theo thứ tự của khóa Index

• Toàn bộ bảng trở thành cây Index

• Các nút lá chứa khóa index đồng thời chứa các

trường còn lại

• Chỉ có thể tối đa một clustered index cho mỗi bảng

• Clustered index có thể chứa một hoặc nhiều trường

• Khi tạo Primary Key, một cách mặc định clustered

index được tạo kèm với nó

• Đây là cách thông thường để tạo clustered index

Trang 34

Ví dụ- Clustered index

Trang 35

Nonclustered index

• Mỗi node lá chứa khóa index và con trỏ trỏ đến trang

dữ liệu chứa bản ghi tương ứng

• Nếu bảng có clustered index, con trỏ này chính là khóa clustered index

• Nếu bảng không có clustered index, con trỏ này là RowID, một dạng định danh bản ghi kết hợpcủa

fileID+ pageID+ offset

• Bảng có thể có nhiều nonclustered index

• Index có thể chứa một hoặc nhiều trường

• Được lưu trữ tách rời khỏi bảng

Trang 36

Nonclustered index

Trang 37

Clustered Index và NonClustered index

• Clustered index:

• Tránh bookmark lookup

• Nâng cao độ ổn định cho nonclusteredindex

• Chỉ được phép tạo một clustered index

• Non-clustered index:

• bookmark lookup giảm hiệu năng

• Cho phép tạo nhiều index trên bảng

• Lưu trữ độc lập với bảng tăng khả năng xử lý

song song

Trang 38

TẠO INDEXED

CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]

INDEX <index name> ON <table or view name>(<column name>

[[,] DATA_COMPRESSION = { NONE | ROW | PAGE}]

Trang 40

VÔ HIỆU HÓA INDEXED

ALTER INDEX { index_name | ALL }

Trang 41

VÍ DỤ CLUSTERED INDEXED

Trang 42

VÍ DỤ NON-CLUSTERED INDEX

Trang 43

INDEXED BỊ XÁO TRỘN KHI CẬP NHẬT

Trang 44

UPDATE SanPham

SET Mota= ‘All the breakthrough technology in iPhone4 is…’WHERE Ten = ‘Iphone4’

Trang 45

UNIQUE VÀ NON-UNIQUE INDEX

• unique (duynhất) và non-unique (không duy nhất) là các

thuộc tính của index

• Mỗi index đều có thể unique hoặc non-unique

• Tuynhiên, clustered index thường là unique

• Khi clustered index không unique, mỗi node được gắn thêm

một chuỗi 4 byte (thực chất là một số INT dương) để trở thành unique.

• Khi đó số bản ghi tối đa cho bảng ~ 2 tỷ

• Khi khai báo ràng buộc unique constraint, một unique

index được tạo để thực thi ràng buộc này

Trang 46

INDEX SEEK VÀINDEX SCAN

• Index seek:khi hệ thống có thể nhảy thẳng đến

node cần tìm

• Đây là thao tác tối ưu

• Index scan:khi hệ thống cần quét cả cây index

để lấy ra các node cần tìm

• Không tối ưu bằng index seek, nhưng tốt hơn table scan

Trang 47

CHỌN CỘT ĐÁNH INDEX

• Cột là ứng cử viên tốt cho index khi:

• Được sử dụng thường xuyên trong điều kiện tìm kiếm (mệnh đề WHERE)

• Được sử dụng trong điều kiện JOIN hai bảng

• Độ lựa chọn (selectivity) đủ cao

• Ưu tiên clustered index cho cột:

• Tăng tuần tự

• Kích thước không quá lớn

• Được tìm kiếm với tần suất cao

• Thường được tìm kiếm theo dải giá trị

Trang 48

ĐỘ LỰA CHỌN(SELECTIVITY)

• Độ lựa chọn= Số giá trị khác biệt/ Số bảnghi

• Độ lựa chọn (selectivity) đủ cao

• Với nonclusteredindex,khi selectivity quá thấp bộ Optimizer

bỏ qua index do chi phí lớn

• Tránh chuyển đổi kiểu dữ liệu(type conversion)

• Tránh áp dụng hàm lên cột index

• Cột đầu tiên trong khóa index phải được sử dụng cho

tìm kiếm (với composite index)

• Index với Join: Index giúp giảm không gian tìm kiếm

chọn thuật toán hiệu quả hơn

Trang 49

CÁC KỸTHUẬT INDEX NÂNG CAO

• Covering index

• Lưu thêm các cột dữ liệu vào node index

• Giúp tránh truy nhập vào bảng để lấy dữ liệu

• Filtered index

• Index cho một số bản ghi nhất định

• Index intersection

• Nhiều index cùng tham gia lọc dữ liệu

• Di chuyển index sang filegroup khác với bảng

• Đọc index và đọc bảng diễn ra song song

Trang 50

BẢO TRÌ INDEX

• Các thao tác cập nhật (INSERT/UPDATE/DELETE)

làm index bị phân mảnh

• Hai dạng phân mảnh:

• Hai node kế tiếp không được lưu trữ liền kề nhau

• Trang(page) chứa nhiều không gian trống

• Phân mảnh làm tăng số trang cần đọc cho cùng

lượng dữ liệu giảm hiệu năng truy vấn

• Thông tin về phân mảnh:

sys.dm_db_index_physical_stats

Trang 51

• Rebuild vàReorganize index:

• Dùng để cấu trúc lại index, do đó giảm thiểu được phân mảnh

• Re-org thao tác nhanh hơn nhưng không hiệu quả khi index bị phân mảnh nặng

• Khi độ phân mảnh<=30% REORGANIZE

• Khi độ phân mảnh> 30% REBUILD

• Cập nhật Statistics:

• Statistics chứa thông tin về phân bố dữ liệu của cột giúp

Optimizer chọn phương án thực thi thích hợp

• Sau quá trình cập nhật dữ liệu, statistics bị outdated dẫn đến Optimizer chọn phương án sai

• Thống kê về sử dụng index:

sys.dm_db_index_usage_stats

Trang 52

TỔNG KẾT

• Index là công cụ quan trọng trợ giúp các truy vấn vào

database

• Phần lớn sự cố về performance liên quan đến index

• Mặt trái của index :

• Chiếm không gian đĩa

• Tăng chi phí của các thao tác cập nhật dữ liệu

Ngày đăng: 06/12/2016, 12:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w