Thứ 6, 4/19/2024

Thông tin đăng tải trên trang này phục vụ mục đích chia sẻ kiến thức và kinh nghiệm với điều kiện cần ghi rõ nguồn khi sử dụng. Tư vấn GeoViệt khuyến khích quý vị trao đổi kinh nghiệm của mình bằng cách gửi bài cho chúng tôi
Hotline: (024) 62657729 / 0838286123
  • Góc Kỹ thuật
  • |
  • Địa tin học
Bảo mật trong SQLServer

(17/4/2013 | Viết bởi Nguyễn Thị Thùy) 

Bảo mật là gì?

Bảo mật là một giải pháp bảo vệ dữ liệu hoặc hệ thống để tránh đánh cắp, xâm nhập, tấn công dưới nhiều hình thức

Với mỗi công ty, tổ chức hay cá nhân, dữ liệu luôn là yếu tố cực kỳ quan trọng. Việc bảo mật cho dữ liệu vì thế là mối quan tâm hàng đầu. Bài viết này sẽ giới thiệu những vẫn đề bảo mật cơ bản trong SQL Server.

Vấn đề bảo mật trong SQL Server có thể được nhìn nhận thông qua 4 khía cạnh: Platform, Authentication, Objects Security (bao gồm dữ liệu), và Application Security (các ứng dụng truy cập hệ thống)

1.     Platform

Platform cho SQL Server bao gồm các phần cứng vật lý và các hệ thống mạng kết nối khách hàng đến các máy chủ cơ sở dữ liệu và các tập tin nhị phân được sử dụng để xử lý các yêu cầu cơ sở dữ liệu.

Bảo vệ mức vật lý  hạn chế việc truy cập vật lý vào máy chủ và các thành phần phần cứng, đồng thời hạn chế quyền truy cập để sao lưu dữ liệu từ một thiết bị ngoại vi. Việc bảo ở mức vật lý bắt đầu bằng cách loại bỏ những người sử dụng trái phép ra khỏi hệ thống.

Operating System Security: Các gói dịch vụ và nâng cấp hệ điều hành bao gồm việc tăng cường an ninh mạng. Tường lửa cũng cung cấp những phương pháp để tăng hiệu quả bảo mật. Tường lửa tạo ra khoảng phân cách hoặc thu hẹp lưu lượng mạng, từ đó có thể cấu hình để thực thi chính sách bảo mật dữ liệu.

2.     Authentication

SQLServer xác thực việc truy cập dữ liệu thông qua việc phân quyền truy cập dữ liệu bao gồm:

-    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. 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 đó.

Mỗi database lại lưu trữ một danh sách các user, các user này luôn luôn gán 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.

-  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à 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…).

-  Database role: 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.

- Authentication

SQL Server xác thực các đăng nhập bằng hai cơ chế, Windows AuthenticationSQL 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.

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.

3.     Object Security (Bảo mật đối tượng cơ sở dữ liệu )

Encryption and Certificates: Encryption không giải quyết các vấn đề điều khiển, tuy nhiên nó tăng cường bảo mật bằng cách làm hạn chế mất mát dữ liệu.

Certificates: là phần mềm chìa khóa được chia sẻ giữa 2 máy chủ cho phép truyền thông tin an toàn bằng cách xác thực quyền người dùng, đồng thời tăng khả năng bảo mật các kết nối tới từng đối tượng.

SQLServer phân quyền tới từng đối tượng trong Database: table, procedures, functions nhằm hạn chế khả năng truy cập và xử lý dữ liệu đối với từng người dùng, từ đó tăng hiệu quả truy vấn dữ liệu đồng thời tăng khả năng bảo mật dữ liệu.

4.     Application Security

SQLServer cung cấp khả năng bảo mật từ phía các ứng dụng thông qua việc cấu hình ứng dụng, tạo kết nối tới database.

Ngoài các biện pháp bảo mật trong chính phần mềm, SQLServer còn cung cấp các công cụ để người dùng có thể cấu hình và thực thi việc bảo mật. SQL Server hỗ trợ những Stored procedure hệ thống sử dụng trong việc quản lý an ninh, một số thủ tục không được tán thành nhưng vẫm tiếp tục được cung cấp nhằm hỗ trợ tương thích ngược.

Các tính năng Stored procedure và function do người dùng tự định nghĩa nhằm tránh khả năng dữ liệu bị mất cắp hoặc bị phá hoại qua lỗ hổng SQL injection.