Các cơ chế bảo mật trong SQL SERVER
Sơ lược chung về SQL SERVER
Cơ sở dữ liệu và quản trị cơ sở dữ liệu là một trong những vấn đề cốt lõi của tin học. Xét cho cùng ứng dụng tin học để giải quyết các bàitoán thì người ta phải giải quyết vấn đề xây dựng cơ sở dữ liệu và xâydựng thuật toán xử lý chúng. Khi cơ sở dữ liệu càng lớn nhu cầu xử lý phức tạp, yêu cầu bảo mật càng cao thì vấn đề quản trị cơ sở dữ liệu càng phức tạp.
Sơ lược chung về SQL SERVER
Cơ sở dữ liệu và quản trị cơ sở dữ liệu là một trong những vấn đề cốt lõi của tin học. Xét cho cùng ứng dụng tin học để giải quyết các bàitoán thì người ta phải giải quyết vấn đề xây dựng cơ sở dữ liệu và xâydựng thuật toán xử lý chúng. Khi cơ sở dữ liệu càng lớn nhu cầu xử lý phức tạp, yêu cầu bảo mật càng cao thì vấn đề quản trị cơ sở dữ liệu càng phức tạp.
Đối với một số doanh nghiệp, hiệu quả
kinh doanh phụ thuộc hoàn toàn vào giá trị thông tin thì vấn đề an toàn thông
tin được đặt trọng tâm hàng đầu. Hiện nay, các doanh nghiệp thường gặp khó khăn
hoặc không thể trả lời các câu hỏi như: ai đã truy cập đến dữ liệu quan trọng
này và vào thời gian nào ? ai đã chỉnh sửa thông tin nhạy cảm của khách hàng ?
tại sao dữ liệu này lại bị thay đổi ? hệ thống dữ liệu hiện có bị ai xâm nhập
trái phép hay không ? Để trả lời các câu hỏi này, doanh nghiệp cần thiết phải
trang bị giải pháp giám sát đầy đủ và chính xác, đồng thời giải pháp phải đảm
bảo không tăng tải và làm chậm hệ thống hiện tại. Trong một số lĩnh vực kinh
doanh nhạy cảm, tính bí mật của thông cần được bảo đảm tuyệt đối. Thông tin cần
đạt tính bí mật và nguyên vẹn ngay khi được lưu trên đĩa cứng, và khi thông tin
được trao đổi vào ra trong mạng cũng phải được
Điều đó cho thấy tầm quan trọng của việc bảo vệ dữ
liệu trong một hệ quản trị CSDL. Dựa trên những lí do đó, chúng em quyết định
chọn đề tài Cơ chế bảo mật trong SQL SERVER. Trong đây sẽ đề cập tới những đặc
trưng tính bảo mật CSDL. Trong quá trình tìm hiểu sẽ không tránh khỏi thiếu
sót, mong Thầy và các bạn quan tâm theo dõi và đóng góp ý kiến, chúng em xin
chân thành tiếp thu và sửa đổi.
Nhóm bao gồm :
( Tự ghi vào )
Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:
Nhóm bao gồm :
( Tự ghi vào )
Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:
·
Principals: các tài khỏan bảo mật
·
Securables: các đối tựơng được bảo vệ
·
Permissions: quyền sử dụng các Securables của Principals.
Ví dụ dễ hiểu từ Facebook, các tài khoản của các bạn luôn luôn có mật khẩu, các tin nhắn luôn luôn bí mật, nếu các bạn thích riêng tư có thể nội dung bài viết của các bạn ở chế độ xem 1 mình. Đối tượng bảo vệ là những người sử dụng tài khoản.
Ví dụ dễ hiểu từ Facebook, các tài khoản của các bạn luôn luôn có mật khẩu, các tin nhắn luôn luôn bí mật, nếu các bạn thích riêng tư có thể nội dung bài viết của các bạn ở chế độ xem 1 mình. Đối tượng bảo vệ là những người sử dụng tài khoản.
Đi sâu hơn 1 chút, ta cần phải hiểu luật đất
nước ta sống, ví dụ như VN là 1 nước 1 đảng, nếu bạn mà lập cái fanpage Đảng
khác thì nên cẩn thận
Giới thiệu SQL Server Authentication (Chế độ xác thực)
SQL Server có 2 cơ chế
xác thực User.
SQL Server có thể xác
thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để
xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.
·
SQL
Server Authentication: Đây là cơ chế xác
thực của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập
và mật mã trong database Master.
Điểm thuận tiện của
chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không
quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có
một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.
·
Windows
Authentication: cơ chế này dựa vào
Windows. Windows thực hiện xác thực và SQL Server tin tưởng điều này và cung
cấp quyền truy cập cho các tài khỏan Windows.
DBA có thể cấu hình
những chế độ xác thực này bằng 2 cách:
·
Mixed
Security: Một login có thể
thực hiện dựa vào kết nối SQL Server hay Windows.
Windows
Only: Chỉ những login có quyền trong Windows mới được đăng nhập.
Giới thiệu Server-Level Roles:
Giới thiệu Server-Level Roles:
Để dễ dàng quản lý các
Permission trên Server, SQL Server cung cấp các Role. Role cũng tương tự như
Groups trong hệ điều hành Windows.
Server-Level Roles còn
gọi là Fixed Server Roles. Nó cố định vì ta không thể tạo thêm Server-level
roles.
Ví dụ về những
Server-level roles tiêu biểu:
·
Sysadmin: thành viên
của sysadmin có thể thực hiện bất kỳ hành động nào trên Server.
·
Serveradmin: thành
viên của serveradmin có thể thay đổi cấu hình và shut down Server.
·
Securityadmin: thành
viên của Securityadmin có thể quản lý các login và thuộc tính của chúng.
Để làm việc với các
Server-Level Roles ta có thể dùng các commands, Views, Functions.
Một Số Khái Niệm Về Bảo Mật Trong SQL Server
Login và user
SQL Server cho phép
truy nhập vào hệ thống thông qua các login. Chỉ khi có quyền ở mức độ nhất định
bạn mới có thể tạo thêm login. Trong SSMS bạn có thể xem các login này bằng
cách mở rộng node Security/Logins. Các login này mới chỉ có quyền truy nhập vào
server chứ chưa hẳn đã truy nhập được vào các database chứa trong đó.
Đến lượt mỗi database
lại duy trì một danh sách các user, các user này luôn luôn đính (mapped) với
một login ở mức server. Khi bạn đăng nhập vào SQL Server thông qua login này,
bạn sẽ có quyền truy nhập vào database theo quyền hạn mà user tương ứng với nó
được cung cấp. Bạn xem các user này bằng cách mở rộng node Security/Users của
database tương ứng.
Ví dụ, tôi có một
login tên là vuht2000 trong SQL Server. Ở database db1 tôi có user vuht2000
được gắn với login vuht2000, và user này chỉ có quyền đọc. Ở database db2 tôi
cũng có user vuht2000 được gắn với cùng login trên, và user này có quyền
đọc/ghi. Khi truy nhập vào SQL Server bằng login vuht2000, bạn sẽ có quyền đọc
trên database db1 và đọc/ghi trên database db2.
2. Server role
Role thực chất là tập
hợp một nhóm các quyền và đại diện bằng một tên để thuận tiện cho việc quản lý.
Server role là nhóm các quyền ở mức server mà login khi được cấp sẽ có thể thực
hiện một số thao tác nhất định ở mức server. Ví dụ role sysadmin có toàn quyền
hoạt động trong server (tạo database, khởi động lại server…) và tự khắc nó cũng
có quyền truy nhập vào tất cả database, diskadmin chỉ có quyền trong các thao
tác về đĩa (như bổ sung thêm file vào database…). Login khi mới được tạo sẽ có
role public, role này thực chất không có quyền gì ngoài quyền truy nhập vào
server. Thông thường chỉ DBA mới nên có quyền sysadmin, còn các developer chỉ
cần role public và bổ sung thêm khi cần.
3. Database role
3. Database role
Cũng với mục đích như
vậy, database role tập hợp các quyền truy nhập vào database thành từng nhóm để
dễ tạo lập và sửa đổi. Ví dụ role db_datareader có quyền đọc dữ liệu từ tất cả
các bảng, role db_datawriter có quyền ghi vào tất cả các bảng; role db_owner có
quyền cao nhất trong database (tạo bảng, tạo thủ tục, thực thi thủ tục…). Các
user đều mặc định có role public. Khi user chỉ có role public, user chỉ có thể
nhìn thấy tên database mà không có quyền gì khác.
4. Authentication
4. Authentication
SQL Server xác thực
các đăng nhập bằng hai cơ chế, windows authentication và SQL Server
authentication. Việc này bắt nguồn từ khi tạo login trong SQL Server. Khi bạn
tạo một login mới, SQL Server sẽ yêu cầu bạn chọn cơ chế xác thực windows hay
SQL Server cho login đó. Nếu chọn windows, bạn cần cung cấp một windows account
và SQL Server sẽ chỉ lưu tên của account đó trong danh sách login. Nếu chọn SQL
Server authentication, bạn cần cung cấp login name và password và cả hai đều
được lưu trong SQL Server.
Khi đăng nhập vào SQL
Server, bạn cũng sẽ phải chọn một trong hai cơ chế xác thực. Nếu chọn windows,
chính account hiện đang đăng nhập vào windows được dùng. Bạn không có quyền
chọn login và thực tế, SQL Server sẽ vòng xuống windows và kiểm tra xem account
nào đang đăng nhập vào windows, nó sẽ lấy account đó và xem có nằm trong danh
sách login của nó hay không. Nếu có thì nó cho vào còn nếu không nó sẽ chặn
lại.
Còn với SQL Server authentication
thì cơ chế giống như bình thường – bạn cung cấp login ID và password. SQL
Server sẽ kiểm tra và quyết định có cho vào hay không.
Một điểm cần lưu ý là
với login sử dụng windows authentication, SQL Server chỉ lưu login name và
không hề lưu password. Và khi đăng nhập nếu bạn cố tình chọn sang SQL Server
authentication, hệ thống sẽ không xác thực cho bạn.
·
Không có nhận xét nào:
Đăng nhận xét