bài 6: bảo mật trong sql server 2008 - giáo trình fpt

32
Bài 6: BẢO MẬT TRONG SQL SERVER 2008

Upload: hoc-lap-trinh-web

Post on 18-Jun-2015

10.699 views

Category:

Documents


15 download

DESCRIPTION

Quản trị viên CSDL là người chịu trách nhiệm về hiệu năng, tính toàn vẹn dữ liệu và bảo mật cho CSDL. Đồng thời người quản trị có vai trò lập kế hoạch, phát triển, khắc phục sự cố xảy ra với CSDL. Các tác vụ quản trị thường thực hiện

TRANSCRIPT

Page 1: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Bài 6:BẢO MẬT TRONG SQL SERVER 2008

Page 2: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Các nội dung đã học trong bài trướcHàm người dùng định nghĩaView

Hệ thống bài cũ

Bảo mật trong SQL Server 2008 2

Page 3: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

1. Bảo mật CSDL

2. Login ID

3. Người dùng CSDL

Bảo mật trong SQL Server 2008 3

3. Người dùng CSDL

4. Quyền & Vai trò

Page 4: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Bảo mật trong SQL Server 2008 4

Page 5: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Quản trị viên CSDL là người chịu trách nhiệm về hiệunăng, tính toàn vẹn dữ liệu và bảo mật cho CSDL. Đồngthời người quản trị có vai trò lập kế hoạch, phát triển,khắc phục sự cố xảy ra với CSDL.Các tác vụ quản trị thường thực hiện

Bảo mật, tạo tài khoản người dùng và phân quyền (họctrong bài này)Lập các chiến lược sao lưu CSDL để phục hồi khi gặp sự cố(học trong bài sau)Tạo lịch sao lưu CSDL tự động(học trong bài sau)…..

Vai trò của người quản trị CSDL

Quản trị viên CSDL là người chịu trách nhiệm về hiệunăng, tính toàn vẹn dữ liệu và bảo mật cho CSDL. Đồngthời người quản trị có vai trò lập kế hoạch, phát triển,khắc phục sự cố xảy ra với CSDL.Các tác vụ quản trị thường thực hiện

Bảo mật, tạo tài khoản người dùng và phân quyền (họctrong bài này)Lập các chiến lược sao lưu CSDL để phục hồi khi gặp sự cố(học trong bài sau)Tạo lịch sao lưu CSDL tự động(học trong bài sau)…..

Bảo mật trong SQL Server 2008 5

Page 6: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Bảo mật CSDL

UserUserUser

UserXác thựcWindows

(Windows LoginID)

Quyền(Permission)

Quyền(Permission)

Bảo mật SchemaSchema

Các đốitượng CSDL

CSDLKết nối và đăngnhập

Bảo mật trong SQL Server 2008 6

GroupGroupGroupUser

Xác thực SQLServer (SQL Server

Login ID)Vai trò (Role)Vai trò

(Role) QuyềnCác câu lệnh

SQL DDLCác câu lệnh

SQL DDL

Xử lý truy cập tới CSDL trên SQL Server

Page 7: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

SQL Server sử dụng Quyền và Vai trò để bảo mật CSDLQuyền (Permission)

Quy định các hành động (action) người dùng có thể thựchiện trên CSDL hoặc các đối tượng CSDL cụ thể

Vai trò (Role)Là tập quyền được gán cho người dùng.

Mỗi người dùng hoặc nhóm người dùng được gán cácquyền và vai trò nhất định để truy cập tới CSDL.SQL Server dựa vào Quyền, và vai trò cấp cho ngườidùng/nhóm người dùng để xác định các đối tượng, câulệnh SQL… người đùng được phép tác động trên CSDL

Bảo mật CSDL

SQL Server sử dụng Quyền và Vai trò để bảo mật CSDLQuyền (Permission)

Quy định các hành động (action) người dùng có thể thựchiện trên CSDL hoặc các đối tượng CSDL cụ thể

Vai trò (Role)Là tập quyền được gán cho người dùng.

Mỗi người dùng hoặc nhóm người dùng được gán cácquyền và vai trò nhất định để truy cập tới CSDL.SQL Server dựa vào Quyền, và vai trò cấp cho ngườidùng/nhóm người dùng để xác định các đối tượng, câulệnh SQL… người đùng được phép tác động trên CSDL

Bảo mật trong SQL Server 2008 7

Page 8: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Nhấp chuột phải vào Server chọn Properties

Thay đổi chế độ xác thực

Hai chế độ:WindowsAuthenticationmodeMixed Mode:Chọn chế độnày, ngườidùng có thểđăng nhập sửdụng WindowsLogin ID hoặcSQL ServerLogin ID

Bảo mật trong SQL Server 2008 8

Hai chế độ:WindowsAuthenticationmodeMixed Mode:Chọn chế độnày, ngườidùng có thểđăng nhập sửdụng WindowsLogin ID hoặcSQL ServerLogin ID

MixedMode

Page 9: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

T-SQLĐược dùng để quản trị Login ID, người dùng CSDL, quyền,vai trò

Management StudioSử dụng Management Studio để thực hiện tất cả các cấuhình bảo mật

Hai cáchcấu hình bảo mật SQL Server

T-SQLĐược dùng để quản trị Login ID, người dùng CSDL, quyền,vai trò

Management StudioSử dụng Management Studio để thực hiện tất cả các cấuhình bảo mật

Bảo mật trong SQL Server 2008 9

Page 10: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Bảo mật trong SQL Server 2008 10

Page 11: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Người dùng kết nối tới CSDL SQL Server sử dụng LoginIDHai loại Login ID

SQL Server Login IDWindows Login ID

Login ID

Người dùng kết nối tới CSDL SQL Server sử dụng LoginIDHai loại Login ID

SQL Server Login IDWindows Login ID

Bảo mật trong SQL Server 2008 11

Page 12: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Tạo Windows Login IDChọn Check Box Windows authenticaton

Tạo SQL Login IDChọn Check Box SQL Server authenticaton

Sinh viên tìm hiểu thêm về các tùy chọn trong SGK

Tạo Login ID

Tạo Windows Login IDChọn Check Box Windows authenticaton

Tạo SQL Login IDChọn Check Box SQL Server authenticaton

Sinh viên tìm hiểu thêm về các tùy chọn trong SGK

Bảo mật trong SQL Server 2008 12

Page 13: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Tạo Windows Login ID

Tạo Login ID sử dụng T-SQL

CREATE LOGIN <tên đăng nhập> FROM WINDOWS[WITH [DEFAULT_DATABASE = <Tên cơ sở dữ liệu>]

[, DEFAULT_LANGUAGE = <Ngôn ngữ>]]

Tạo SQL Login IDCREATE LOGIN <Tên đăng nhập>

WITH PASSWORD = 'password‘ [MUST_CHANGE][, DEFAULT_DATABASE = <Tên cơ sở dữ liệu>][, DEFAULT_LANGUAGE = <Ngôn ngữ>][, CHECK_EXPIRATION = {ON|OFF}[, CHECK_POLICY = {ON|OFF}

Bảo mật trong SQL Server 2008 13

CREATE LOGIN <Tên đăng nhập>WITH PASSWORD = 'password‘ [MUST_CHANGE]

[, DEFAULT_DATABASE = <Tên cơ sở dữ liệu>][, DEFAULT_LANGUAGE = <Ngôn ngữ>][, CHECK_EXPIRATION = {ON|OFF}[, CHECK_POLICY = {ON|OFF}

Ví dụ tạo SQL Login IDCREATE LOGIN JohnDoe WITH PASSWORD = 'pt8806FG$B',

DEFAULT_DATABASE = AP

Page 14: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Không để trống trường Password hoặc sử dụng các giátrị “Password”, “Admin”, “Administrator”, “sa”, hay“sysadmin”Không sử dụng tên máy, hoặc tên người dùng hiện thờiCó nhiều hơn 8 kí tựPhải chứa ít nhất ba trong số các loại kí tự sau: Chữ cáiviết hoa, Chữ cái viết thường, kí tự số, Các kí tự đặc biệt(#, %, &, …)

Password

Không để trống trường Password hoặc sử dụng các giátrị “Password”, “Admin”, “Administrator”, “sa”, hay“sysadmin”Không sử dụng tên máy, hoặc tên người dùng hiện thờiCó nhiều hơn 8 kí tựPhải chứa ít nhất ba trong số các loại kí tự sau: Chữ cáiviết hoa, Chữ cái viết thường, kí tự số, Các kí tự đặc biệt(#, %, &, …)

Bảo mật trong SQL Server 2008 14

Page 15: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Sửa/Xóa Login ID

Sửa Login ID

Bảo mật trong SQL Server 2008 15

Xóa

Sửa

Sinh viên tham khảo thêm cách sử dụng câu lệnh T-SQLđể sửa/xóa Login ID trong sách giáo khoa

Page 16: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Bảo mật trong SQL Server 2008 16

Page 17: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Mỗi CSDL có một danh sách người dùng được xác thựcđể truy cập đến CSDL đó.Khi tạo một database user

User chỉ có quyền chọn ngữ cảnh CSDL. Không có quyềnthực thi các thao tác trên CSDL và trên các đối tượng củaCSDL đóĐể có thể thực hiện các thao tác này user phải được cấpquyền đối tượng và quyền CSDL.

Người dùng CSDL – Database User

Mỗi CSDL có một danh sách người dùng được xác thựcđể truy cập đến CSDL đó.Khi tạo một database user

User chỉ có quyền chọn ngữ cảnh CSDL. Không có quyềnthực thi các thao tác trên CSDL và trên các đối tượng củaCSDL đóĐể có thể thực hiện các thao tác này user phải được cấpquyền đối tượng và quyền CSDL.

Bảo mật trong SQL Server 2008 17

Page 18: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Cú pháp tạo Database User

Tạo/Sửa xóa Database User

CREATE USER <Tên user>[{FOR|FROM} LOGIN <Tên đăng nhập>][WITH DEFAULT_SCHEMA = <Tên schema>]

Cú pháp sửa Database UserALTER USER <Tên user> WITH

[NAME = <Tên user mới>][, DEFAULT_SCHEMA = <Tên schema>]

Bảo mật trong SQL Server 2008 18

ALTER USER <Tên user> WITH[NAME = <Tên user mới>]

[, DEFAULT_SCHEMA = <Tên schema>]

Cú pháp xóa Database UserDROP USER <Tên user>

Chú ý: Câu lệnh CREATE user tạo một user mới trongCSDL hiện thời. Do đó bạn phải chọn ngữ cảnh CSDLtrước khi thực thi câu lệnh

Page 19: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Tạo Database User với tên User và Login ID trùng nhau

Ví dụ tạo Database User

CREATE USER JohnDoe

Tạo Database User cho một Windows User AccountCREATE USER SusanRoberts FOR LOGIN [Accounting\SusanRoberts]

Bảo mật trong SQL Server 2008 19

CREATE USER SusanRoberts FOR LOGIN [Accounting\SusanRoberts]

Đổi tên User

ALTER USER SusanRoberts WITH NAME = SusanStanley

Page 20: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Bảo mật trong SQL Server 2008 20

Page 21: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

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

Quyền

Quyền Các thao tác được phépthực hiện

Đối tượng áp dụng

SELECT Truy xuất dữ liệu Bảng, View, Hàm giá trị bảng

UPDATE Cập nhật dữ liệu Bảng, View, Hàm giá trị bảng

INSERT Thêm dữ liệu mới Bảng, View, Hàm giá trị bảng

Bảo mật trong SQL Server 2008 21

INSERT Thêm dữ liệu mới Bảng, View, Hàm giá trị bảng

DELETE Xóa dữ liệu Bảng, View, Hàm giá trị bảng

EXECUTE Thực thi một StoredProcedure hay một hàm

Stored procedure, Hàm vôhướng và hàm kết hợp

REFERENCES Tạo các đối tượng tham chiếutới đối tượng này

Bảng, View, Hàm

ALL Có tất cả các quyền đối vớiđối tượng

Bảng, View, Hàm , StoredProcedure

Page 22: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Vai trò là một tập các quyềnCó thể dùng để gán cho một người dùng hoặc một nhómngười dùng.

SQL Server đã xây dựng sẵn các Vai trò mặc định gồmVai trò Server mặc địnhVai trò CSDL mặc định

Bạn có thể tự định nghĩa thêm các Vai trò mớiMỗi Vai trò được gán một tập quyền

Ví dụ Vai trò dbcreator có thể thực thi các câu lệnhCREATE/ALTER/DROP DATABASE, RESTORE DATABASE

Vai trò -Role

Vai trò là một tập các quyềnCó thể dùng để gán cho một người dùng hoặc một nhómngười dùng.

SQL Server đã xây dựng sẵn các Vai trò mặc định gồmVai trò Server mặc địnhVai trò CSDL mặc định

Bạn có thể tự định nghĩa thêm các Vai trò mớiMỗi Vai trò được gán một tập quyền

Ví dụ Vai trò dbcreator có thể thực thi các câu lệnhCREATE/ALTER/DROP DATABASE, RESTORE DATABASE

Bảo mật trong SQL Server 2008 22

Page 23: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Vai trò Server mặc định bao gồm những người dùngquản trị Server

Vai trò Server mặc định

Vai trò Mô tả

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 WindowsBUILTIN\Administrators đều là thành viên của vai trò này.

Bảo mật trong SQL Server 2008 23

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 WindowsBUILTIN\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, đồngthờ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.

Page 24: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Vai trò Mô tả

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êncủ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 trongCSDL

Vai trò CSDL mặc định

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

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 trongCSDL

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ántrên CSDL

Bảo mật trong SQL Server 2008 24

Page 25: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Sử dụng trang ServerRole trong LoginProperties để chọn vàgán vai trò Server chomột Login ID

Hai cách gánvai trò Server cho một Login ID

Sử dụng Server RoleProperties để thêm LoginID vào danh sách thànhviên của vai trò Server

Bảo mật trong SQL Server 2008 25

Page 26: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Gán vai trò CSDL cho Login ID

Danh sách tất cả CSDL trên Server- Chọn/bỏ chọn các Check Box để cấpquyền truy cập CSDL cho LoginID

Bảo mật trong SQL Server 2008 26

Danh sách tất cả các Vai trò CSDL củadòng CSDL đang được chọn- Chọn hoặc bỏ chọn Check Box đểthêm Login ID vào các Vai trò

Page 27: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Gán Vai trò CSDLcho một Database User

Nút chọn Schema mặc địnhcho Database User

Bảo mật trong SQL Server 2008 27

Các Vai trò CSDL- Chọn/bỏ chọn Check box đểgán/loại bỏ User cho Vai tròCSDL tương ứng.

Page 28: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Gán quyền truy cập các đối tượng CSDLcho một Login ID

Click vào đây để thêm cácthực thể có thể bảo mật vàodanh sách bên dưới

Danh sách các thực thể có thểbảo mật

Bảo mật trong SQL Server 2008 28

Danh sách các quyền mà User đượccấp để làm việc với thực thể có thểbảo mật được chọn trong danh sách ởtrên

Chọn/bỏ chọn Check Box Grant: Cấp/thu hồi quyềnChọn/bỏ chọn Check Box With Grant: Cho phép/không cho phép user cấp quyền cho user khácChọn Check Box Deny: Từ chối quyền người dùng trên thực thể có thể bảo mật được chọn

Page 29: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Làm việc với Quyền CSDL

Danh sách user/Vai trò đượcquyền truy cập CSDL

Bảo mật trong SQL Server 2008 29

Danh sách các quyền màuser/Vai trò được chọn đượcphép thực hiện trên CSDL

Page 30: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Tạo Vai trò tự định nghĩa

Vai trò tự định nghĩa

Chỉ định schema và cácthành viên của Vai trò

Cấp quyền cho Vai trò trêncác thực thể có thể bảomật

Bảo mật trong SQL Server 2008 30

Page 31: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Cú pháp câu lệnh tạo vai trò

Vai trò tự định nghĩa

CREATE ROLE role_name [AUTHORIZATION owner_name]

Cú pháp câu lệnh xóa vai tròDROP ROLE role_name

Ví dụ câu lệnh tạo Vai tròCREATE ROLE InvoiceEntry

Ví dụ câu lệnh cấp quyền cho Vai trò

Bảo mật trong SQL Server 2008 31

Ví dụ câu lệnh cấp quyền cho Vai tròGRANT INSERT, UPDATEON InvoicesTO InvoiceEntryGRANT INSERT, UPDATEON InvoiceLineItemsTO InvoiceEntry

Chú ý:Câu lệnh CREATE ROLE sẽ tạo một Vai trò cho cơ sở dữ liệu hiện thờiTên Vai trò chứa tối đa 128 kí tự bao gồm các chữ cái, biểu tượng, sốvà không chứa kí tự \

Page 32: Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT

Bảo mật CSDLNgười dùng kết nối tới SQL Server sử dụng Login IDHai cách SQL Server sử dụng để xác thực người dùng

Windows AuthenticationSQL Server Authentication

SQL Server dựa vào Quyền, và vai trò cấp cho người dùngđể xác định các đối tượng, câu lệnh SQL người đùng đượcphép tác động trên CSDLQuyền: SELECT, UPDATE, DELETE…Vai trò: là một tập các quyền để gán cho một người dùnghoặc một nhóm người dùng.

Tổng kết

Bảo mật CSDLNgười dùng kết nối tới SQL Server sử dụng Login IDHai cách SQL Server sử dụng để xác thực người dùng

Windows AuthenticationSQL Server Authentication

SQL Server dựa vào Quyền, và vai trò cấp cho người dùngđể xác định các đối tượng, câu lệnh SQL người đùng đượcphép tác động trên CSDLQuyền: SELECT, UPDATE, DELETE…Vai trò: là một tập các quyền để gán cho một người dùnghoặc một nhóm người dùng.

Bảo mật trong SQL Server 2008 32