Tải bản đầy đủ (.docx) (70 trang)

Tìm hiểu về mã hóa dữ liệu trong suốt ( transparent dât encryption ) trong SQL sever

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 (1.08 MB, 70 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

TÌM HIỂU VỀ MÃ HÓA DỮ LIỆU TRONG SUỐT
(TRANSPARENT DATA ENCRYPTION) TRONG SQL
SERVER
Ngành: An toàn thông tin
Mã số: 7.48.02.02

Sinh viên thực hiện:
Đậu Quang Chúc
Lớp: AT11A
Người hướng dẫn:
TS. Trần Thị Lượng
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2019


BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

TÌM HIỂU VỀ MÃ HÓA DỮ LIỆU TRONG SUỐT
(TRANSPARENT DATA ENCRYPTION) TRONG SQL
SERVER


Ngành: An toàn thông tin
Mã số: 7.48.02.02

Sinh viên thực hiện:
Đậu Quang Chúc
Lớp: AT11A
Người hướng dẫn:
TS. Trần Thị Lượng
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2019


MỤC LỤC

3


Từ viết tắt
AES
CSDL
DBF
DBMS
DMV
EKM
MARS
MS DTC
PCI DSS
RDBMS
SAC


Đầy đủ
Advanced Encryption Standard (Thuật toán mã hóa khối)
Cơ Sở Dữ Liệu
Tệp CSDL
Hệ thống quản lý CSDL
Chế độ xem quản lý động
Quản lý khóa mã hóa
Multiple Active Result Sets
Điều phối viên giao dịch phân tán
Payment Card Industry Data Security Standard
Hệ Quản Trị CSDL Quan Hệ
cấu hình bề mặt (Surface Area Configuration)

OLE DB

Cơ sở dữ liệu nhúng và liên kết đối tượng

TDE
3DES

Transparent Data Encreption (Mã hóa dữ liệu trong suốt)
Triple DES(Thuật toán mã hóa dữ liệu ba)

4


DANH MỤC BẢNG

5



DANH MỤC HÌNH VẼ

6


LỜI MỞ ĐẦU
Hiện nay Internet đang dần trở nên phổ biến trên thế giới, thông qua mạng
Internet mọi người có thể trao đổi thông tin với nhau một cách nhanh chóng và
thuận lợi. Những công ty phát triển và kinh doanh trên môi trường
intranet/Internet họ phải đối diện với khó khăn lớn là làm thế nào để bảo vệ dữ
liệu, ngăn chặn những hình thức tấn công, truy xuất dữ liệu bất hợp pháp từ bên
trong (intranet) lẫn cả bên ngoài (Internet). Khi một người muốn trao đổi thông
tin với một người hay một tổ chức nào đó thông qua mạng máy tính thì yêu cầu
quan trọng là làm thế nào để đảm bảo thông tin không bị sai lệch hoặc bị lộ do
sự xâm nhập, đánh cắp thông tin trái phép của kẻ thứ ba. Trước các yêu cầu cấp
thiết đó, em đã chọn đề tài “Tìm hiểu về mã hóa dữ liệu trong suốt (Transparent
Data Encreption-TDE) trong SQL Server” làm đồ án tốt nghiệp của mình.
Mục tiêu của việc nghiên cứu đề tài này là nhằm tìm hiểu và thực hiện mã
hóa dữ liệu trong suốt để đảm bảo an toàn cho thông tin trong cơ sở dũ liệu.
Nội dung đồ án được trình bày ba chương:
Chương 1: Tổng quan về hệ quản trị SQL Server
• Giới thiệu tổng quan hệ quản trị cơ sở dữ liệu SQL Server.
Chương 2: Mã hóa dữ liệu trong suốt (Transparent Data Encreption – TDE)
• Tìm hiểu về mã hóa dữ liệu trong suốt TDE.
Chương 3: Thực nghiệm mã hóa TDEcho cơ sở dữ liệu trên SQL Server
• Triển khai giải thực hiện mã hóa dữ liệu TDE cho cơ sở dữ liệu.
Em xin chân thành cảm ơn sự giúp đỡ tận tình của cô TS. Trần Thị Lượng
để báo cáo của em được hoàn thành.

Do thời gian có hạn nên báo cáo của em chắc chắn còn nhiều thiếu sót. Em
rất mong nhận được sự góp ý, chỉ bảo của quý thầy cô để báo cáo của em được
hoàn thiện hơn.
Em xin chân thành cảm ơn !
Hà Nội, ngày10 tháng 6 năm 2019
SINH VIÊN THỰC HIỆN

Đậu Quang Chúc

7


CHƯƠNG 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
SQL SERVER
1.1 Giới thiệu hệ quản trị SQL Server
1.1.1 Khái niệm về hệ quản trị cơ sở dữ liệu SQL Server
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database
Management System - RDBMS) sử dụng câu lệnh SQL (Transact-SQL) để trao
đổi dữ liệu giữa máy Client và máy cài SQL Server. Một RDBMS bao gồm các
CSDL, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận
khác nhau trong RDBMS.
SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất
lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ
cùng lúc cho hàng ngàn user. SQL Server có thể kết hợp “ăn ý” với các server
khác như Microsoft Internet Information Server (IIS), E-Commerce Server,
Proxy Server….
1.1.2 Các ấn bản của SQL Server
Enterprise : chứa tất cả cá đặc điểm nổi bật của SQL Server, bao gồm
nhân bộ máy cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo
và quản lý phân cụm SQL Server. Nó có thể quản lý các CSDL lớn tới

524 petabytes và đánh địa chỉ 12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử
lý(các core của cpu).
Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn
nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp
(advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4
CPU và 2 GB RAM.
Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được
chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc….
Ðây là phiên bản sử dụng cho phát triển và kiểm tra ứng dụng. Phiên bản này
phù hợp cho các cá nhân, tổ chức xây dựng và kiểm tra ứng dụng.
Workgroup: ấn bản SQL Server Workgroup bao gồm chức năng lõi cơ sở
dữ liệu nhưng không có các dịch vụ đi kèm. Chú ý phiên bản này không còn tồn
tại ở SQL Server 2012.
Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn
giản. Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các
8


ứng dụng dữ liệu, an toàn trong lưu trữ, và nhanh chóng triển khai. SQL Server
Express là phiên bản miễn phí, không giới hạn về số cơ ở dữ liệu hoặc người sử
dụng, nhưng nó chỉ dùng cho 1 bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở
dữ liệu. SQL Server Express là lựa chọn tốt cho những người dùng chỉ cần một
phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp,
những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây
dựng các ứng dụng nhỏ.
1.1.3 Lịch sử ra đời SQL Server và các phiên bản
Phiên bản đầu tiên của Microsoft SQL Server ra đời đầu tiên vào năm
1989 cho các hệ điều hành chạy 16 bít với SQL Server phiên bản 1.0 và tiếp tục
phát triển cho tới ngày nay.
SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ

version 6.5. Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho
SQL Server 7.0. Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước
nhảy vọt. Có một số đặc tính của SQL Server 7.0 không tương thích với version
6.5. Trong khi đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải
tiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đáng
tin cậy hơn.
Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là Multiple-Instance. Tức
là có thể cài dặt phiên bản 2000 chung với các phiên bản trước mà không cần
phải gỡ chúng. Nghĩa là có thể chạy song song version 6.5 hoặc 7.0 với phiên
bản 2000 trên cùng một máy (điều này không thể xảy ra với các phiên bản trước
đây). Khi đó phiên bản cũ trên máy là Default Instance còn phiên bản 2000 mới
vừa cài sẽ là Named Instance.
Từ tháng 10 năm 2016, các phiên bản sau được Microsoft hỗ trợ:
SQL Server 2008
SQL Server 2008 là phiên bản miễn phí của SQL Server, là nền tảng dữ
liệu lý tưởng để học và xây dựng các ứng dụng máy tính để bàn và máy chủ nhỏ
và để phân phối lại bởi ISV.
Về cơ bản, nó được thiết kế để dễ dàng triển khai và tạo mẫu nhanh. SQL
Server 2008 Express có sẵn dưới dạng gói miễn phí và có thể tự do phân phối
lại với các ứng dụng khác. Nó được thiết kế để tích hợp trơn tru với các khoản
đầu tư cơ sở hạ tầng máy chủ khác.

9


Nó được hỗ trợ trên Windows Server 2003 Service Pack 2, Windows
Server 2008, Windows Vista, Windows Vista Service Pack 1, Windows XP
Service Pack 2 và Windows XP Service Pack 3.
SQL Server 2012
Microsoft SQL Server 2012 là một hệ thống quản lý dữ liệu miễn phí

mạnh mẽ và đáng tin cậy, cung cấp kho dữ liệu phong phú và đáng tin cậy cho
các trang web và ứng dụng máy tính để bàn nhẹ. Liên kết đến tất cả các phiên
bản của nó được cung cấp dưới đây.
SQL Server 2014
Microsoft SQL Server 2014 là một hệ thống quản lý dữ liệu miễn phí
mạnh mẽ và đáng tin cậy, cung cấp kho lưu trữ dữ liệu rộng rãi và đáng tin cậy
cho các trang web và ứng dụng máy tính để bàn nhẹ. Nó miễn phí và có các
phiên bản SQL Server giàu tính năng, lý tưởng cho việc học, phát triển, cung
cấp năng lượng cho các ứng dụng máy tính để bàn, web và máy chủ nhỏ và để
phân phối lại bởi các nhà cung cấp Phần mềm Độc lập (ISV).
Nó được hỗ trợ trên Windows 10, Windows 7, Windows 7 Service Pack 1,
Windows 8, Windows 8.1, Windows Server 2008 R2, Windows Server 2008 R2
SP1, Windows Server 2012 và Windows Server 2012 R2.
SQL Server 2016
SQL Server 2016 là phiên bản của hệ thống quản lý cơ sở dữ liệu quan hệ
( RDBMS ) của Microsoft , lần đầu tiên có sẵn trong các bản phát hành xem
trước trong năm 2015, có sẵn vào ngày 1 tháng 6 năm 2016. SQL Server 2016
là cơ sở dữ liệu dựa trên SQL được thiết kế để hỗ trợ kết hợp giao dịch xử lý,
lưu trữ dữ liệu và các ứng dụng phân tích trong môi trường doanh nghiệp.
Khi công bố kế hoạch phát hành SQL Server 2016 vào tháng 5 năm 2015,
các quan chức của Microsoft cho biết cơ sở dữ liệu được cập nhật là một phần
trong động thái của công ty hướng tới triển khai CNTT "trước tiên trên nền tảng
di động, trên nền tảng đám mây". Ví dụ: các tính năng mới được tích hợp trong
SQL Server 2016 bao gồm một tính năng cho phép người dùng "kéo dài" cơ sở
dữ liệu tại chỗ của họ vào đám mây. Ngoài ra, một số tính năng bổ sung đã được
thử nghiệm và xác thực lần đầu tiên trong Cơ sở dữ liệu SQL Azure, chúng dựa
trên đám mây của Microsoft với máy chủ SQL. SQL Server 2016 cũng hỗ trợ
các ứng dụng kinh doanh thông minh trên thiết bị di động, một điểm khác biệt so
với người tiền nhiệm trước đó là SQL Server 2014.


10


1.2 Các thành phần của SQL Server
SQL Server được cấu tạo bởi nhiều thành phần như Database
Engine, Reporting Services, Notification Services, Integration Services, Full Text
Search Service…. Các thành phần này khi phối hợp với nhau tạo thành một giải
pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng.

Hình 1.1 : Các thành phần chính SQL Server
Công cụ lưu trữ (Database Engine)
Ðây là một công cụ có khả năng chứa data ở các quy mô khác nhau dưới
dạng table và hỗ trợ tất cả các kiểu kết nối (Data Connection) thông dụng của
Microsoft như: ActiveX Data Objects (ADO), OLE DB, và Open Database
Connectivity (ODBC).
Ngoài ra nó còn có khả năng tự điều chỉnh (Tune up) ví dụ như sử dụng
thêm các tài nguyên (Resource) của máy khi cần và trả lại tài nguyên cho hệ
điều hành khi một user log off.
Replication
Cơ chế tạo bản sao (Replica):
Giả sử có một CSDL dùng để chứa dữ liệu được các ứng dụng thường
xuyên cập nhật. Một ngày đẹp trời muốn có một CSDL giống y hệt như thế trên
một server khác để chạy báo cáo (report database) (cách làm này thường dùng
để tránh ảnh hưởng đến hiệu suất của máy chủ). Vấn đề báo cáo máy chủ cũng
cần phải được cập nhật thường xuyên để đảm bảo tính chính xác. Không thể
dùng cơ chế Backup và Restore trong trường hợp này. Vậy thì phải làm sao?
Lúc đó cơ chế replication của SQL Server sẽ được sử dụng để bảo đảm cho dữ
liệu ở 2 CSDL được đồng bộ (synchronized).
11



Integration Services
Integration Services là một tập hợp các công cụ đồ họa và các đối tượng
lập trình cho việc di chuyển, sao chép và chuyển đổi dữ liệu.
Nếu làm việc trong một công ty lớn trong đó data được chứa trong nhiều
nơi khác nhau và ở các dạng khác nhau cụ thể như chứa trong Oracle, DB2 (của
IBM), SQL Server, Microsoft Access…. chắc chắn sẽ có nhu cầu di chuyển data
giữa các server này (migrate hay transfer) và không chỉ di chuyển còn muốn
định dạng (format) nó trước khi lưu vào CSDL khác, khi đó sẽ thấy DTS giúp
giải quyết công việc trên dễ dàng.
Analysis Services
Là một dịch vụ phân tích dữ liệu rất hay của Microsoft
Dữ liệu (Data) chứa trong CSDL sẽ chẳng có ý nghĩa gì nhiều nếu như
không thể lấy được những thông tin (Information) bổ ích từ đó. Do đó Microsoft
cung cấp cho một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên dễ
dàng và hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (multidimension cubes) và kỹ thuật “khai phá dữ liệu” (data mining).
Notification Services
Dịch vụ thông báo Notification Services là nền tảng cho sự phát triển và
triển khai các ứng dụng tạo và gửi thông báo. Notification Services có thể gửi
thông báo theo địch thời đến hàng ngàn người đăng ký sử dụng nhiều loại thiết
bị khác nhau.
Reporting Services
Reporting Services bao gồm các thành phần server và Client cho việc tạo,
quản lý và triển khai các báo cáo. Reporting Services cũng là nền tảng cho việc
phát triển và xây dựng các ứng dụng báo cáo.
Full Text Search Service
Dịch vụ SQL Server Full Text Search là một dịch vụ đặc biệt cho đánh chỉ
mục và truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong các
CSDL SQL Server. Đánh chỉ mục với Full Text Search có thể dduwowcj tạo trên
bất kỳ cột dựa trên dữ liệu văn bản. Nó sẽ rất hiệu quả cho việc tìm các sử dụng

toán tử LIKE trong SQL với trường hợp tìm văn bản.
Service Broker
Được sử dụng bên trong mỗi Instance, là môi trường lập trình cho việc
các ứng dụng nhảy qua các Instance. Service Broker giao tiếp qua giao thức
TCP/IP và cho phép các component khác nhau có thể được đồng bộ cùng nhau
12


theo hướng trao đổi các message. Service Broker chạy như một phần của bộ
máy cơ sở dữ liệu, cung cấp một nền tảng truyền message tin cậy và theo hàng
đợi cho các ứng dụng SQL Server.
1.3 Quản lý các dịch vụ của SQL Server
1.3.1 Dịch vụ MS SQL Server.
MS SQL Server là 1 phần của RDBMS-Relational Database Management
System dùng để quản lý tất cả các file gồm các CSDL mà SQL Server quản lý,
là thành phần xử lý tất cả các lệnh của Transact-SQL được gửi từ các trình ứng
dụng Client, phân phối các nguồn tài nguyên khi có nhiều user cùng truy nhập
một lúc. Đây là dịch vụ quản trị cơ bản, khi ngắt dịch vụ này hệ thống sẽ ngưng
tất cả các công việc khai thác dữ liệu.
RDBMS là nền tảng cho SQL cũng như cho tất cả các hệ cơ sở dữ liệu
khác như MS SQL Server, IBM DB2, Oracle, MýQL và Microsoft Access.
Một hệ quản trị cơ sở dữ liệu quan hệ là hệ quản trị cơ sở dữ liệu (DBMS)
dựa trên mô hình quan hệ được giới thiệu bởi E.F.Codd.
Trong RDBMS, dữ liệu được biểu diễn bởi các hàng. Relational Database
là cơ sở dữ liệu được sử dụng phổ biến nhất. Nó chứa các bảng và mỗi bảng có
Primary Key riêng. Bởi vì các bảng này được tổ chức chặt chẽ nên việc truy cập
dữ liệu trở nên dễ dàng hơn trong RDBMS.
1.3.2 Dịch vụ SQL Server Agent.
SQL Server Agent là một dịch vụ Microsoft Windows thực thi các tác vụ
quản trị theo lịch trình, được gọi là các công việc trong SQL Server.

Hỗ trợ các tính năng cho phép lập thời biểu các hoạt dộng theo từng giai
đoạn trên SQL Server, hoặc thông báo cho người quản lý hệ thống về những
sự cố của hệ thống, bao gồm các thành phần Jobs, Alerts, Operator...

13


Hình 1.2: Dịch vụ SQL Server Agent
Các thành phần của SQL Server Agent:
SQL Server Agent sử dụng các thành phần sau để xác định các tác vụ sẽ
được thực hiện, khi nào thực hiện các tác vụ và cách báo cáo thành công hay
thất bại của các tác vụ.
Công việc - Jobs

14


Một công việc là một chuỗi các hành động được chỉ định mà SQL Server
Agent thực hiện. Sử dụng các công việc để xác định một nhiệm vụ quản trị có
thể được chạy một hoặc nhiều lần và được theo dõi thành công hay thất bại. Một
công việc có thể chạy trên một máy chủ cục bộ hoặc trên nhiều máy chủ từ xa.
Có thể chạy công việc theo nhiều cách:
• Theo một hoặc nhiều lịch trình.
• Đáp lại một hoặc nhiều cảnh báo.
• Bằng cách thực hiện thủ tục lưu trữ sp_start_job.
Mỗi hành động trong một công việc là một bước công việc . Ví dụ: bước
công việc có thể bao gồm chạy câu lệnh Transact-SQL, thực thi gói SSIS hoặc
ban hành lệnh cho máy chủ Dịch vụ phân tích. Các bước công việc được quản lý
như một phần của công việc.
Mỗi bước công việc chạy trong một bối cảnh bảo mật cụ thể. Đối với các

bước công việc sử dụng Transact-SQL, hãy sử dụng câu lệnh EXECUTE AS để
đặt bối cảnh bảo mật cho bước công việc. Đối với các loại bước công việc khác,
hãy sử dụng tài khoản proxy để đặt bối cảnh bảo mật cho bước công việc.
Lịch trình - Schedule
Một lịch trình chỉ định khi một công việc chạy. Nhiều công việc có thể
chạy trên cùng một lịch trình và nhiều hơn một lịch trình có thể áp dụng cho
cùng một công việc. Một lịch trình có thể xác định các điều kiện sau đây cho
thời gian khi một công việc chạy:
• Bất cứ khi nào SQL Server Agent bắt đầu.
• Bất cứ khi nào việc sử dụng CPU của máy tính ở mức đã xác định là
không hoạt động.
• Một lần, vào một ngày và thời gian cụ thể.
• Trên một lịch trình định kỳ.
Cảnh báo - Alert
Một cảnh báo là một phản ứng tự động cho một sự kiện cụ thể. Ví dụ: một
sự kiện có thể là một công việc bắt đầu hoặc tài nguyên hệ thống đạt đến một
ngưỡng cụ thể. xác định các điều kiện theo đó một cảnh báo xảy ra.
Một cảnh báo có thể đáp ứng với một trong các điều kiện sau đây:
• Sự kiện máy chủ SQL
• Điều kiện hoạt động của SQL Server
• Các sự kiện của Microsoft Windows Management Instrumentation
(WMI) trên máy tính nơi SQL Server Agent đang chạy

15


Một cảnh báo có thể thực hiện các hành động sau:
• Thông báo cho một hoặc nhiều nhà khai thác
• Điều hành một công việc
Người Điều hành - Operator

Một toán tử xác định thông tin liên hệ cho một cá nhân chịu trách nhiệm
bảo trì một hoặc nhiều phiên bản của SQL Server. Trong một số doanh nghiệp,
trách nhiệm của nhà điều hành được giao cho một cá nhân. Trong các doanh
nghiệp có nhiều máy chủ, nhiều cá nhân có thể chia sẻ trách nhiệm của nhà điều
hành. Một toán tử không chứa thông tin bảo mật và không xác định hiệu trưởng
bảo mật.
SQL Server có thể thông báo cho người vận hành cảnh báo thông qua một
hoặc nhiều điều sau:
• E-mail
• Máy nhắn tin (thông qua e-mail)
• gửi mạng lưới
Để gửi thông báo cho các nhà khai thác bằng cách sử dụng e-mail hoặc
máy nhắn tin, phải định cấu hình SQL Server Agent để sử dụng Database Mail.
Có thể định nghĩa một toán tử là bí danh cho một nhóm các cá nhân. Theo
cách này, tất cả các thành viên của bí danh đó được thông báo cùng một lúc.
Bảo mật cho SQL Server Agent Administration
Vai trò:
SQL Server Agent sử dụng các vai trò cơ sở dữ liệu cố định SQL Agent
User Role , SQL Agent Reader Role và SQL Agent Operator Role trong cơ sở
dữ liệu MSDB để kiểm soát quyền truy cập vào SQL Server Agent cho người
dùng không phải là thành viên của vai trò máy chủ cố định sysadmin . Ngoài các
vai trò cơ sở dữ liệu cố định này, các hệ thống con và proxy giúp quản trị viên
cơ sở dữ liệu đảm bảo rằng mỗi bước công việc chạy với các quyền tối thiểu cần
thiết để thực hiện nhiệm vụ của mình.
Các hệ thống con:
Một hệ thống con là một đối tượng được xác định trước đại diện cho chức
năng có sẵn cho một bước công việc. Mỗi proxy có quyền truy cập vào một hoặc
nhiều hệ thống con. Các hệ thống con cung cấp bảo mật vì chúng phân định
quyền truy cập vào chức năng có sẵn cho proxy. Mỗi bước công việc chạy trong
ngữ cảnh của proxy, ngoại trừ các bước công việc Transact-SQL. Các bước công


16


việc Transact-SQL sử dụng lệnh EXECUTE AS để đặt bối cảnh bảo mật cho chủ
sở hữu của Công việc.
SQL Server Agent thực thi các hạn chế hệ thống con ngay cả khi hiệu
trưởng bảo mật cho proxy thường có quyền chạy tác vụ trong bước công
việc. Ví dụ: proxy cho người dùng là thành viên của vai trò máy chủ cố định
sysadmin không thể chạy bước công việc SSIS trừ khi proxy có quyền truy cập
vào hệ thống con SSIS, mặc dù người dùng có thể chạy các gói SSIS.
Proxy:
SQL Server Agent sử dụng proxy để quản lý bối cảnh bảo mật. Một proxy
có thể được sử dụng trong nhiều bước công việc. Các thành viên của vai trò máy
chủ cố định sysadmin có thể tạo proxy.
Mỗi proxy tương ứng với một thông tin bảo mật. Mỗi proxy có thể được
liên kết với một tập hợp các hệ thống con và một tập hợp các thông tin đăng
nhập. Proxy chỉ có thể được sử dụng cho các bước công việc sử dụng hệ thống
con được liên kết với proxy. Để tạo một bước công việc sử dụng một proxy cụ
thể, chủ sở hữu công việc phải sử dụng thông tin đăng nhập được liên kết với
proxy đó hoặc là thành viên của một vai trò có quyền truy cập không hạn chế
vào proxy. Các thành viên của vai trò máy chủ cố định sysadmin có quyền truy
cập không hạn chế vào proxy.
Thành viên của SQL Agent User Role, SQL Agent Reader Role hoặc
SQL Agent Operator Role chỉ có thể sử dụng proxy mà họ đã được cấp quyền
truy cập cụ thể. Mỗi người dùng là thành viên của bất kỳ vai trò cơ sở dữ liệu cố
định nào của đại lý SQL Server phải được cấp quyền truy cập vào các proxy cụ
thể để người dùng có thể tạo các bước công việc sử dụng các proxy đó.
1.3.3 Dịch vụ Microsoft Search.
Microsoft Search là một bổ trợ miễn phí cho SQL Server Management

Studio và Visual Studio, cho phép nhanh chóng tìm kiếm SQL trên cơ sở dữ liệu
của mình.
Cung cấp dịch vụ tìm kiếm và tìm kiếm văn bản với các phép toán cơ bản
sau:
+ Ký tự (chuỗi): =, >, >=, <, <= được so sánh với một chuỗi hằng.
+ So sánh chuỗi nhỏ trong văn bản
hoặc chuỗi có kích thước lớn, văn bản.

17


1.3.3.1
1.3.3.2

Hình 1.3: Dịch vụ Microsoft Search
Lợi ích của dịch vụ Microsoft Seach trong SQL Server:
• Tìm kiếm tên cột và tìm tất cả các thủ tục được lưu trữ nơi nó được
sử dụng.
• Làm việc nhanh hơn.
Ví dụ: Tìm bất cứ thứ gì trong Object Explorer đòi hỏi rất nhiều nhấp
chuột. Việc sử dụng Microsoft Search có thể nhấn tổ hợp phím tắt, bắt đầu nhập
tên và trỏ ngay vào đó.

18


Hình 1.4: Microsoft Search giúp làm việc nhanh hơn
• Tăng hiệu quả, giảm lỗi.
Ví dụ: Sử dụng Tìm kiếm SQL, có thể tìm kiếm SELECT * trong văn bản
các quy trình và chế độ xem được lưu trữ và thay thế chúng bằng một danh sách

cột chính xác để cải thiện hiệu suất và ngăn ngừa các lỗi trong tương lai.

19


Hình 1.5: Microsoft Search giúp làm việc hiệu quả hơn
1.3.4 Dịch vụ MS DTC.
Dịch vụ MS DTC - Distributed Transaction Co-ordinator (Điều phối viên giao
dịch phân tán) là dịch vụ cho phép trong một phiên giao vận có thể sử dụng dữ
liệu được phân phối trên nhiều server khác nhau, thực hiện theo các bước cơ bản
sau:


Gọi các thủ tục lưu trữ trên các server xa sử dụng SQL Server.



Tự động gọi hoặc tạo các phiên giao vận cục bộ và các giao vận với
các máy chủ từ xa.



Tạo bộ dữ liệu được cập nhật hoặc được phân phối bởi các server xa.

Điều này là để đảm bảo rằng giao dịch được cam kết hoặc được khôi phục
trên các hệ thống phân tán này và không có phần nào bị bỏ lại ở trạng thái không
cam kết.
Giao dịch phân tán là một giao dịch thường được bắt đầu từ một ứng dụng
chạm vào nhiều trường hợp riêng biệt. Ví dụ:


Hình 1.6: Dịch vụ MS DTC
20


Khi một giao dịch phân tán được bắt đầu, giao dịch được biết bởi DTC
cục bộ (hoặc được phân cụm tùy theo cấu hình), sau đó sẽ gửi các yêu cầu đến
trình quản lý tài nguyên DB cục bộ. Trình quản lý tài nguyên sau đó thực hiện
các yêu cầu giao dịch. Trình quản lý tài nguyên được đăng ký trong trang khởi
động của cơ sở dữ liệu sẵn có trên bản sao chính. Nếu chuyển đổi dự phòng xảy
ra trong giao dịch này, trong giai đoạn phục hồi cơ sở dữ liệu, DTC bản sao
chính trước đó cung cấp chi tiết giao dịch cho trình quản lý tài nguyên chính
mới (hiện đã được đăng ký trong trang khởi động của cơ sở dữ liệu sẵn có chính
mới). Nếu giao dịch được thực hiện, nó có thể được chuyển tiếp, nếu giao dịch
không được cam kết / nghi ngờ thì nó sẽ được khôi phục.

Sơ đồ hoạt động:

Hình 1.7: Sơ đồ hoạt động của MS DTC
21


Khi Client kêu gọi một thủ tục có sẵn đến server cục bộ, khi có yêu cầu
dữ liệu trên server khác, thông qua dịch vụ MS DTC server cục bộ sẽ gọi các thủ
tục từ server từ xa, kết quả có thể tạo được bộ dữ liệu được tập trung từ nhiều
server khác nhau.

Hình 1.8: Bộ dữ liệu được tập trung từ nhiều Server
1.4 Các cơ chế an toàn trong SQL Server
1.4.1 Đăng nhập và người dùng (Login And User)
SQL Server chỉ cho phép truy cập vào hệ thống thông qua quá trình đăng

nhập. Chỉ khi có quyền hạn ở mức độ nhất định thì người dùng mới có thể tạo
22


thêm những đăng nhập khác. Ở trong SSMS có thể xem tất cả các đăng nhập
bằng cách mở rộng những node Security/Logins. Những đăng nhập này chỉ có
quyền truy cập vào Server chứ chưa thể vào được cơ sở dữ liệu ở bên trong.
Với mỗi cơ sở dữ liệu lại duy trì một danh sách những người dùng, các
người dùng này luôn luôn đính với một đăng nhập ở mức độ Server. Nếu đăng
nhập vào SQL Server qua đăng nhập này, người dùng sẽ có quyền truy cập vào
cơ sở dữ liệu theo quyền hạn mà người dùng tương ứng với nó được cung cấp.
Có thể xem những người dùng này bằng cách mở rộng Security/Users của cơ sở
dữ liệu tương ứng.
Để hiểu hơn khái niệm bảo mật SQL Server này, giả sử có một đăng nhập
có tên là Chuc2019 vào trong SQL Server. Ở trong cơ sở dữ liệu db1, có người
dùng tên là Chuc2019 và được gắn với đăng nhập Chuc2019, và tất nhiên
người dùng này chỉ có quyền đọc. Ở trong cơ sở dữ liệu 2, cũng có người dùng
Chuc2019 cũng được gắn cùng với login ở trên, và người dùng này có quyền
đọc và ghi. Khi truy cập vào SQL Server bằng Chuc2019, chỉ có quyền đọc trên
db1 nhưng lại có thể đọc và ghi trên db2.
1.4.2 Vai trò trên Server (Server rule)
Server Role là một tập hợp 1 nhóm những quyền và được đại diện bằng
một tên có thể thuận tiện trong việc quản lý. Server role chính là nhóm những
quyền ở mức độ Server, mà khi các login được cấp chúng sẽ có thể làm một số
thao tác ở mức độ Server.
Không chỉ gán vai trò cho người dùng trong CSDL, mà còn có thể gán vai
trò trong phạm vi toàn bộ SQL Server. Điều này có nghĩa là có thể ngăn cản
hoặc cho phép mọi người thực hiện các hoạt động. Các vai trò này được gọi là
vai trò trên server (server role).
Các vai trò trên server trong SQL Server:

• Sysadmin: vai trò này có khả năng kiểm soát toàn bộ SQL Server
• Securityadmin: tạo và quản lí các dăng nhập cho server.
• Serveradmin: cấu hình các tham số và tắt server.
• Setupadmin: quản lí các thủ tục khỏi động và liên kết server.
• Processadmin: quản lí các chuyển tác đang chạy trên SQL Server. Điều
này có nghĩa vai trò này có thể đưa ra câu lệnh KILL, kết thúc công
việc 1 người dùng.
• Diskadmin: quản lí các file trên đĩa.
• Dbcreator: có thể tạo, xáo trộn, xóa CSDL.
23


Hình 1.9: Role trong SQL server
Chẳng hạn như vai trò sysadmin có toàn quyền hoạt động ở trong Server
và tự nó cũng có quyền truy cập vào toàn bộ cơ sở dữ liệu. Và “diskadmin” chỉ
có quyền về những thao tác như bổ sung tập tin vào cơ sở dữ liệu.
Những login khi được tạo thì vai trò mặc định là public. Vai trò này thực
chất không có bất kỳ quyền nào cả ngoại trừ quyền truy cập vào Server. Thường
thường chỉ có DBA mới có quyền sysadmin còn với những developer thì chỉ là
role public và thi thoảng bổ sung thêm khi có thêm những tác vụ liên quan.

24


1.4.3 Vai trò trên cơ sở dữ liệu (Rule Database)
CSDL tập hợp những quyền truy cập vào cơ sở dữ liệu thành từng nhóm
để có thể dễ tạo và sửa đổi.
Có một vai trò trên CSDL rất đặc biệt: vai trò Public. Mỗi người dùng
được định nghĩa trong CSDL đều thuộc về vai trò Public. Nếu muốn mọi người
trong một CSDL có một quyền nào đấy, ta phải gán quyền đó với vai trò public.

Nếu một người dùng chưa được cấp quyền trên một đối tượng, người đó sẽ dùng
các quyền gán cho public. Vai trò Public hầu như không có quyền nào ngoại trừ
một quyền rất cơ bản là cho phép người dùng kết nối với CSDL.
Vai trò này có một số điều cơ bản:
• Ở trong mọi CSDL.
• Không thể bị loại bỏ.
• Mọi người dùng đều thuộc vai trò Public.
• Vì mọi người dùng đều thuộc vai trò này (mặc định), nên không thể
thêm hay bớt.
• người dùng cho vai trò này.
Một số vai trò và quyền trên CSDL:
• Db_Owner: Vai trò cho phép người dùng quyền được hoàn toàn kiểm
soát CSDL.
• Db_Securityadmin: Vai trò cho phép một người dùng quản lí tất cả các
vai trò và thành viên, gán quyền cho các vai trò.
• Db_Accessadmin: cho phép người dùng thêm hoặc bớt người dùng
trong CSDL.
• Db_Ddladmin: cho phép xử lí tất cả các đối tượng trong CSDL (tạo,
sửa, xóa... đối tượng).
• Db_Backupoperator: cho phép thực hiện backup CSDL.
• Db_Datawriter: cho phép sửa dữ liệu ở các bảng do người dùng tạo
trong CSDL.
• Db_Reader: cho phép xem dữ liệu ở các bảng do người dùng tạo trong
CSDL.
• Db_Denydatawriter: ngăn việc sửa dữ liệu.
• Db_Denydatareader: ngăn việc xem dữ liệu.
Một người dùng đơn lẻ có thể thuộc một, nhiều, hoặc không thuộc vai trò
nào cả. 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ẩt cả các quyền của các vai trò đó. Ta có thể tạo vai trò trên CSDL dùng
Enterprise Manager hoặc sử dụng các thủ tục thường trú hệ thống.

25


×