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

User and Security Management

17 1,1K 3
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề User and Security Management
Định dạng
Số trang 17
Dung lượng 160,5 KB

Nội dung

User and Security Management

Trang 1

Session 6 User and Security Management

Mục tiêu bài học:

Kết thúc chương này bạn có thể

Hiểu về bảo mật trong SQL Server security

Miêu tả các chế độ đăng nhập khác nhau của SQL Server

Sử dụng T-SQL để quản lý các đăng nhập

Giải thích về khái niệm của CSDL người dùng

Sử dụng store procedure hệ thống để quản lý CSDL người dùng

Giải thích khái niệm về các vai trò của CSDL và các vai trò của máy chủ

Mô tả các quyền hạn khác nhau gắn với từng vai trò

Danh sách các đối tượng CSDL và các quyền hạn gắn với chúng

Tìm hiểu cách làm thế nào để gán và thu hồi các quyền với các đối tượng CSDL

Giới thiệu

Trong phần trước chúng ta đã học về ngôn ngữ T-SQL Chúng ta cũng đã thảo luận về luồng các câu lệnh điều khiển logic khác nhau Chúng ta cũng đã học danh sách các biến và các hàm Một CSDL trong một tổ chức hoặc doanh nghiệp có thể chứa dữ liệu quan trọng và bí mật Trong ngữ cảnh này CSDL bảo mật đã trở thành một vấn đề quan trọng Nó cũng trở nên cần thiết và quan trọng để bảo trì nguyên tắc toàn vẹn dữ liệu và cách sử dụng các vai trò và quyền hạn trong các trạng thái phù hợp Một DBMS hoặc RDBMS phải hỗ trợ các kỹ thuật và là phương tiện để thực thi thước đo về độ bảo mật đó và nó sẽ giúp để bảo vệ dữ liệu

Trong chương này, chúng ta sẽ tập trung vào các chính sách bảo mật của SQL Server và thảo luận chi tiết thế nào là cơ chế bảo mật được thực thi trong SQL Server Chúng ta sẽ thảo luận về cách quản lý đăng nhập thông qua quyền đăng nhập Chúng ta cũng sẽ học về các vai trò và cách làm thế nào để chúng ta có thể thực thi bảo mật thông qua chúgn Cuối chương chúng ta sẽ tập trung vào các quyền của đối tượng

6.1 Giới thiệu về cơ chế bảo mật trong SQL Server

Bảo mật trong SQL Server có thể sử dụng mô hình 3 tầng như hình dưới đây:

Hình 6.1: Mô hình bảo mật của SQL Server

1 Sự thẩm định quyền

2 Khả năng để người sử dụng sử dụng một

hoặc nhiều CSDL

3 Các quyền cụ thể sử dụng

bảo vệ CSDL

Trang 2

Lớp ngoài cùng là nhu cầu cho mức bảo mật chính của NT nó không có gì nhưng một tài khoản người dùng NT hoặc một nhóm bảo mật dành quyền truy cập tới SQL Server thông qua đăng nhập Lớp tiếp theo có thể sử dụng một hoặc nhiều CSDL Lớp trong cùng có các quyền cụ thể để thực thi các câu lệnh SQL dựa trên các đối tượng CSDL bảo vệ

The outer layer is the requirement for an NT security principal which is nothing but an NT user account or security group to gain access to SQL Server through a server login The next layer is the requirement to be able to use one or more databases The innermost layer is the requirement

to have specific permissions to execute SQL statements against protected database objects

Khả năng của tài khoản người dùng để dành được quyền truy cập thông qua 3 lớp được quyết định bởi hai yếu tố tối thiểu sau:

 Các quyền truy cập được gán cho các nhóm bảo mật Windows để mỗi tài khoản trong nhóm

có các quyền tương ứng

 Thay đổi quản trị CSDL phải có các quyền xây dựng tài khoản khách

 Changes the database administrator has made to the rights of the built-in guest account

Lớp trong cùng của mô hình bảo mật SQL Server bao gồm các người dùng CSDL có khả năng truy cập đối tượng CSDL, bao gồm các bảng, các khung nhìn, và các thủ tục chứa

Để đơn giản hoá các quyền của người dùng, SQL Server 2000 cung cấp các vai trò, các vai trò này giống như các nhóm bảo mật của Windows Chúng ta có thể nhóm các người sử dụng riêng biệt liên quan đến nhau một cách logic vào một vai trò, và sau đó gán một tập hợp các quyền

thích hợp cho vai trò đó Có hai kiểu vai trò trong SQL Server Server và database Chúng ta sẽ

thảo luận chi tiết hơn trong phần sau

Bây giờ chúng ta sẽ tìm hiểu cách làm thế nào để quản lý bảo mật người dùng trong SQL Server thông qua trình quản lý đăng nhập

6.2 Trình quản lý đăng nhập

SQL Server kiểm tra người sử dụng ở hai cấp:

 Quyền đăng nhập

 Các quyền hiệu lực trên CSDL người dùng

SQL Server phải xác nhận người dùng trước khi người dùng có thể truy cập dữ liệu trong CSDL Trong SQL Server mỗi người sử dụng đưa ra một tài khoản riêng biệt là tài khoản đăng nhập Mỗi người sử dụng tương tác với SQL Server bằng cách sử dụng tài khoản này Người sử dụng

sử dụng tài khoản đăng nhập được xác định và gán các quyền tương ứng để kết nối tới SQL Server Nếu sự xác nhận này không thành công, người sử dụng không thể kết nối tới SQL Server

6.2.1 Xác nhận thông tin đăng nhập

 Một người sử dụng phải có một tài khoản để kết nối tới SQL Server SQL Server có bao cơ chế xác nhận thông tin đăng nhập – SQL Server authentication, Windows NT authentication

và chế độ xác nhận hỗn hợp Mỗi cơ chế xác nhận thông tin đăng nhập này đều có kiểu tài khoản đăng nhập khác nhau

Trang 3

Kiểm soát quyền hạn của SQL Server

Khi sử dụng cơ chế kiểm soát quyền hạn của SQL Server, quản trị hệ thống SQL Server xác nhận một tài khoản đăng nhập SQL Server và mật khẩu Người sử dụng phải cung cấp cả tên đăng nhập và mật khẩu để kết nối đến SQL Server

Kiểm soát quyền hạn của Windows NT

Khi một người sử dụng kết nối tới SQL Server bằng cơ chế kiểm soát quyền hạn của Windows NT, SQL Server kiểm tra cùng với Windows NT để xác nhận tài khoản đăng nhập

và mật khẩu là hợp lệ Nếu tên tài khoản và mật khẩu nhập vào hợp lệ thì người sử dụng có thể truy cập vào SQL Server và kết nối tới máy chủ

Kiểm soát quyền hạn của chế độ hỗn hợp

Trong chế độ hỗn hợp, một người sử dụng kết nối tới SQL Server sử dụng cả hai cơ chế kiểm soát quyền hạn của Windows hoặc cơ chế kiểm soát quyền hạn của SQL Server Những người sử dụng kết nối thông qua tài khoản người dùng Windows có thể tạo các kết nối tin cậy trong cả chế độ hỗn hợp hay chế độ kiểm soát quyền hạn của Windows

Người dùng phải được sự chấp nhận của quản trị hệ thống để truy cập CSDL trên máy chủ Điều này được thực hiện bằng cách gán các quyền hạn cho tài khoản người dùng và các vai trò Các quyền hạn này kiểm soát các hoạt động mà người dùng có thể thực hiện trong CSDL SQL Server

6.2.2 Kiểm soát hiệu lực của quyền hạn

Với mỗi CSDL, các quyền hạn được gán cho các tài khoản người dùng và các vai trò được tạo lập

để thực hiện (hoặc hạn chế) các hành động tác động lên CSDL SQL server chấp nhận các lệnh sau khi người dùng dành được quyền truy cập CSDL thành công

SQL Server thực hiện các bước sau đây trong khi thực hiện kiểm tra hiệu lực của các quyền hạn:

1 Khi người sử dụng thực hiện một hành động, ví dụ thực hiện một câu lệnh T-SQL hoặc chọn một tuỳ chọn trong thực đơn của Enterprise Manager, các lệnh T-SQL được gửi tới SQL Server

2 Khi SQL Server nhận được câu lệnh T-SQL, nó tiến hành kiểm tra các quyền hạn của người dùng để thực hiện câu lệnh đó

3 SQL Server thực hiện một trong hai hành động sau:

 Nếu người dùng không có quyền thích hợp, SQL Server trả về lỗi

 Nếu người dùng có các quyền thích hợp, SQL Server sẽ thực hiện câu lệnh T-SQL đó

Sử dụng Enterprise Manager và tuỳ chọn Properties của máy chủ, chúng ta có thể thiết lập các

chế độ kiểm soát quyền hạn giống như chế độ kiểm soát quyền hạn của Windows và chế độ kiểm soát quyền hạn hỗn hợp

6.2.3 Tạo lập đăng nhập

Sử dụng Enterprise Manager chúng ta có thể quản lý các đăng nhập bằng cách sử dụng chức năng Create Login Wizard của SQL Server Enterprise Manager Chức năng wizard này đưa ra

Trang 4

các bước đầy đủ hướng dẫn để tạo lập các đăng nhập theo một phương thức cách dễ dàng và hiệu quả

Hình 6.2: Create Login Wizard

Chúng ta có thể sử dụng stored procedures để tạo lập và gỡ bỏ các đăng nhập

Để tạo lập một đăng nhập, chúng ta có thể sử dụng các lệnh sau đây

EXEC sp_addlogin 'Arwen', 'princess'

Ở đây tên đăng nhập là “Arwen” và mật khẩu là “princess”

Để gỡ bỏ một đăng nhập khi nó không cần thiết nữa, chúng ta có thể sử dụng câu lệnh sau:

EXEC sp_droplogin 'Arwen'

6.3 Trình quản lý người dùng

SQL Server cho phép hai kiểu tài khoản người dùng:

 Người dùng hệ thống

 Nguời dùng CSDL

6.3.1 SQL Server users

Một định danh người dùng (ID) có thể sử dụng để nhận dạng một người sử dụng trong một CSDL Tất cả quyền hạn và quyền sở hữu của các đối tượng trong CSDL được kiểm soát bởi tài khoản người dùng này Các tài khoản người dùng CSDL được xác định bởi CSDL đó; tài khoản

Trang 5

người dùng abc trong CSDL books khác với tài khoản người dùng abc trong CSDL inventory, thậm trí trong cả trường hợp tài khoản người dùng có cùng ID Các ID của người

dùng được xác định bởi các thành viên của db_owner có các vai trò CSDL nhất định

6.3.2 Quan hệ giữa CSDL người dùng và tên đăng nhập

Một người sử dụng trong CSDL được xác định bởi ID của họ, không phải ID đăng nhập của họ

Ví dụ, sa là tài khoản đăng nhập được ánh xạ tới tài khoản dành riêng dbo (database owner) trong

mọi CSDL Tất cả các câu lệnh T-SQL bảo mật-liên quan sử dụng ID người dùng như là tham số bảo mật

Một ID đăng nhập bản thân nó không đưa ra được các quyền của người dùng để truy cập các đối tượng trong bất kỳ CSDL nào Một ID đăng nhập phải được kết hợp với một ID người dùng trong mỗi CSDL truớc khi có bất kỳ ai đó kết nối bằng ID đăng nhập này để có thể truy cập được các đối tượng trong CSDL Nếu một ID đăng nhập không được gắn kết với bất kỳ một ID người dùng nào trong CSDL, nó sẽ được kết hợp với ID người dùng khách (guest) Nếu một CSDL không có tài khoản người dùng guest, một đăng nhập không thể truy cập CSDL trừ khi nó được kết hợp với một tài khoản người dùng hợp lệ

Tài khoản khách (guest) là một tài khoản người dùng đặc biệt trong CSDL SQL Nếu một người dùng gõ vào câu lệnh USE database để truy cập CSDL trong trường hợp chúng không được kết hợp với một tài khoản người dùng, thay vào đó chúng được kết hợp với tài khoản khách

6.3.3 Quản lý tên người dùng và tên đăng nhập

Ví dụ dưới đây mô tả quá trình của một tài khoản Windows 2000 để truy cập CSDL và kết hợp đăng nhập với một người dùng trong CSDL:

Ví dụ 1:

1 USE master

2 GO

3 sp_grantlogin 'OnlineDOMAIN\Arwen'

4 GO

5 sp_defaultdb @loginame = 'OnlineDOMAIN\Arwen', defdb = 'books'

6 GO

7 USE books

8 GO

9 sp_grantdbaccess 'OnlineDOMAIN\Arwen', 'Arwen'

10 GO

11 sp_grantdbaccess 'OnlineDOMAIN\Arwen', 'Arwen'

12 GO

D Danh sách các stored procedures phổ biến trong ngữ cảnh này được tóm tắt dưới đây:

1 Thủ tục sp_grantlogin cho phép tài khoản người dùng hoặc tài khoản nhóm người dùng

Windows NT/2000 kết nối tới SQL Server sử dụng cơ chế kiểm soát quyền hạn trong Windows

2 Thủ tục sp_defaultdb thay đổi CSDL mặc định để đăng nhập.

Trang 6

3 Thủ tục sp_grantdbaccess được sử dụng để thêm một tài khoản bảo mật CSDL và gán quyền

truy cập cho tài khoản này

4 Thủ tục sp_revokedbaccess được sử dụng để xoá một tài khonả bảo mật từ CSDL.

Trang 7

6.4 Vai trò quản lý Role Management

Các vai trò rất quan trọng bởi vì chúng là cách chính để phân chia các đặc quyền hệ thống tới người dùng Các đặc quyền có thể phân chia tới người dùng thông qua một vai trò hoặc trực tiếp, nhưng sự phân chia trực tiếp này có thể tốn khá nhiều thời gian và dài dòng đối với DBA Bằng cách tạo lập một vai trò cho một vài kiểu người dùng và phân chia hệ thống cho vai trò đó, chúng

ta có thể cắt bớt được số lượng công việc phải làm và dễ dàng theo dõi các quyền hạn Một vai trò giống như khái niệm một nhóm trong NT Chúng ta có thể gán các quyền hạn tới cả vai trò hay từng người dùng riêng biệt Nếu chúng ta gán các quyền hạn tới vai trò, sau đó mọi người dùng được chúng ta thêm vai trò này sẽ kế thừa các quyền hạn của vai trò đó Do vậy các vai trò là công cụ mạnh mẽ cho pép chúng ta nhóm các người dùng vào thành từng nhóm riêng và có thể thiết lập các quyền hạn trên các nhóm đó

Đó là cách dễ dàng để quản lý các quyền hạn trong CSDL nếu chúng ta định nghĩa một tập hợp các vai trò dựa trên các chức năng công việc và gán cho mỗi vai trò các quyền hạn cụ thể dựa trên các công việc đó Chúng ta có thể dịch chuyển các người dùng giữa các vai trò dễ dàng hơn việc quản lý các quyền hạn cho mỗi người dùng riêng biệt Nếu chức năng của công việc thay đổi, thì cũng dễ dàng thay đổi các quyền hạn đối với vai trò đó và sự thay đổi này tự động áp dụng cho tất cả các thành viên của vai trò đó

SQL Server có các vai trò CSDL (database roles) và các vai trò máy chủ (server roles) Database roles được dùng trong việc cung cấp các cấp độ truy cập khác nhau tới CSDL Server roles được

dùng để hạn chế hoặc cho phép người dùng thực hiệnh các thao tác khác nhau

6.4.1 Các vai trò CSDL

Có một vai trò CSDL rất đặc biệt: vai trò Public Mọi người dùng được định nghĩa trong CSDL đều thuộc vai trò Public Nếu chúng ta muốn mọi người trong CSDL có quyền hạn cụ thể nào đó,

chúng ta phải gán quyền hạn đó cho vai trò public Nếu một người dùng không được gán các

quyền cụ thể trên một đối tượng, họ sử dụgn các quyền đã gán cho public Vai trò Public này

hầu như không có quyền hạn ngoại trừ vài quyền rất cơ bản cho phép người dùng tạo kết nối tới CSDL Vai trò này có một số quy tắc cơ bản kèm theo nó

 Nó có trong mọi CSDL

 Nó không thể bị xoá

Mọi người dùng đều thuộc vai trò Public, bao gồm cả tài khoản sa.

 Bởi vì mặc định mọi người dùng đều thuộc vai trò này, chúng ta không thể thêm hoặc gỡ bỏ các người dùng ra khỏi vai trò này

Chúng ta hãy xem các vai trò khác nhau và các quyền hạn đi kèm với chúng

db_owner: Đây là vai trò cấp cao nhất mà người dùng có thể có Vai trò này cho phép người dùng có toàn quyền kiểm soát trên CSDL Người dùng sa là thành viên của vai trò db_owner db_securityadmin: Vai trò này cho phép một người dùng quản lý được tất cả các vai trò và các

thành viên của chúng Vai trò này cũng cho phép gán các quyền hạn cho các vai trò Nếu chúng ta

Trang 8

có một người dùng mà chúng ta có thể tin cậy để quản lý bảo mật cho CSDL của chúng ta nhưng không cần thiết phải có đầy đủ quyền kiểm soát trên CSDL, chúng ta có thể gán vai trò này cho người dùng đó

db_accessadmin: Vai trò này dùng cung cấp các quyền người dùng để thêm hoặc gỡ bỏ các

người dùng trong CSDL

db_ddladmin: Vai trò này cho phép một người dùng thao tác với tất cả các đối tượng trong

CSDL Ví dụ, một người dùng có thể tạo lập, sửa chữa, hoặc xoá các đối tượng CSDL Vai trò này có quyền để chạy tất cả các SQL Server 2000 DDLs

db_backupoperator: Vai trò này cho phép người dùng thực hiện thao tác sao chép dự phòng

CSDL

db_datawriter: Vai trò này cho phép người dùng sửa chữa dữ liệu trong tất cả các bảng người

dùng định nghĩa trong CSDL

db_datareader: Vai trò này cho phép một người dùng hiển thị dữ liệu từ các bảng người dùng

định nghĩa trong CSDL

db_denydatawriter: Vai trò này ngăn chặn người dùng sửa chữa dữ liệu trong bảng người dùng

định nghĩa trogn CSDL

db_denydatareader: Vai trò này ngăn chặn người dùng hiển thị dữ liệu trong bảng người dùng

định nghĩa trong CSDL

Chú ý: Một người dùng có thể không có, có một hoặc nhiều các vai trò Nếu một người dùng

thuộc nhiều hơn một vai trò, người dùng sẽ có tập hợp tất cả các quyền của các vai trò đó theo thứ tự

Chúng ta có thể tạo lập một vai trò CSDL bằng cách sử dụng Enterprise Manager hoặc sử dụng các thủ tục hệ thống

Trang 9

Hình 6.3: Creating New Roles

Giống như hầu hết tất cả các đối tượng CSDL, chúng ta cần đưa ra tên của vai trò mà SQL Server 2000 có thể sử dụng để nhận dạng chúng

SQL Server đưa ra 2 kiểu vai trò:

Vai trò chuẩn: Kiểu vai trò này giống như các nhóm trong Windows NT Vai trò này có thể

chứa các người dùng và quyền hạn có thể áp dụng Khi một người dùng kết nối với tư cách là thành viên của vai trò, chúng kế thừa các quyền hạn của vai trò đó

Vai trò ứng dụng: Đây là các vai trò đặc biệt trong SQL Server 2000 bởi vì chúng không

chứa bất kỳ thành viên (hoặc người sử dụng) nào Trong vài trường hợp chúng ta có thể nghĩ các vai trò đặc biệt này giống như các tài khoản người dùng Các vai trò ứng dụng giống như người dùng bởi vì chúng yêu cầu phải có mật khẩu

6.4.2 Vai trò máy phục vụ

Chúng ta không chỉ gán các vai trò cho người dùng trong CSDL mà chúng ta còn có thể gán các vai trò người dùng trong SQL Server 2000 Điều này có nghĩa là chúng ta có thể hạn chế hoặc

cho phép người dùng thực hiện các thao tác khác nhau Các vai trò này gọi là các vai trò máy phục vụ.

Trang 10

Dưới đây là các vai trò máy phục vụ sẵn có trong SQL Server 2000:

sysadmin: Đối với trường hợp của SQL Server 2000 vai trò này có đầy đủ các quyền kiểm soát trên toàn bộ ứng dụng Tài khoản sa thuộc vai trò này.

securityadmin: Vai trò này có thể tạo lập và quản lý các đăng nhập cho máy chủ.

serveradmin: Đối với trường hợp của SQL Server 2000, vai trò này có thể thiết lập các tuỳ chọn

cấu hình Vai trò này cũng có khả năng tắt máy chủ

setupadmin: Vai trò này có khả năng khởi động các thủ tục và các liên kết máy chủ

processadmin: Vai trò này có khả năng quản lý quá trình mà SQL Server 2000 đang thực hiện.

Điều này có nghĩa là vai trò này có thể huỷ bỏ lệnh, kết thúc phiên làm việc của người dùng Nếu người dùng có bất kỳ các giao tác nào đang mở, các giao tác này được phục hồi lại trước khi phiên làm việc kết thúc

diskadmin: Vai trò này có thể quản lý các tệp tin trên đĩa, ví dụ các nhóm tệp tin.

dbcreator: Vai trò này có thể tạo lập, thay đổi, và huỷ bỏ CSDL.

6.4.3 Thêm một thành viên tới một vai trò

Các vai trò có thể thêm bằng cách sử dụng Enterprise Manager hoặc thủ tục chứa hệ thống

sp_addrole Chúng ta có thể thêm các thành viên vào vai trò bằng cách sử dụng thủ tục sp_addrolemember Ví dụ dưới đây hiển thị cách làm thế nào để tạo lập các vai trò và thêm các

thành viên vào các vai trò này bằng cách sử dụng thủ tục

Ví dụ 2:

1 sp_addrole 'Teacher'

3 sp_addrole 'Student'

5 sp_addrole 'StudentTeacher'

7 sp_addrolemember 'Teacher', 'NETDOMAIN\Peter'

9 sp_addrolemember 'Teacher', 'NETDOMAIN\Cathy'

11 sp_addrolemember 'StudentTeacher', 'NETDOMAIN\Diane'

13 sp_addrolemember 'Student', 'NETDOMAIN\Mel'

15 sp_addrolemember 'Student', 'NETDOMAIN\Jim'

17 sp_addrolemember 'Student', 'NETDOMAIN\Lara'

19 GRANT SELECT ON StudentGradeView TO Student

21 GRANT SELECT, UPDATE ON TeacherGradeView TO Teacher

Ngày đăng: 11/09/2012, 13:54

HÌNH ẢNH LIÊN QUAN

Hình 6.1: Mô hình bảo mật của SQL Server - User and Security Management
Hình 6.1 Mô hình bảo mật của SQL Server (Trang 1)
Hình 6.2: Create Login Wizard - User and Security Management
Hình 6.2 Create Login Wizard (Trang 4)
Hình 6.3: Creating New Roles - User and Security Management
Hình 6.3 Creating New Roles (Trang 9)
Bảng 6.1 liệt kê các đối tượng CSDL SQL khác nhau - User and Security Management
Bảng 6.1 liệt kê các đối tượng CSDL SQL khác nhau (Trang 11)
Bảng 6.2: Tóm tắt quyền hạn của đối tượng CSDL 6.5.3 Gán và gỡ bỏ quyền hạn trên đối tượng - User and Security Management
Bảng 6.2 Tóm tắt quyền hạn của đối tượng CSDL 6.5.3 Gán và gỡ bỏ quyền hạn trên đối tượng (Trang 12)

TỪ KHÓA LIÊN QUAN

w