Khái niệm role trong hệ quản trị cơ sở dữ liệu SQL Server

Trong bất kỳ hệ thống cơ sở quản trị dữ liệu nào, thì vấn đề an ninh, bảo mật luôn được đặt lên hàng đầu. Và với SQL Server, nếu chúng ta tận dụng được nhiều ưu điểm của ứng dụng này, những người làm công việc quản trị hệ thống sẽ giảm bớt được rất nhiều gánh nặng cũng như áp lực trong công việc...

Với bài viết hướng dẫn dưới đây, Stanford - Dạy kinh nghiệm lập trình sẽ giới thiệu với các bạn một số thông tin cơ bản cũng như cách sử dụng, quản lý role của SQL Server.

Bước đầu tiên cần thực hiện trong toàn bộ quá trình bảo mật dữ liệu cho người dùng là xác định rõ ràng những tài khoản nào sẽ được quyền truy cập, xem hoặc chỉnh sửa dữ liệu. Ví dụ, các trưởng bộ phận có thể xem được tài khoản lương của nhân viên, trong khi các bậc quản lý ở cấp cao hơn sẽ có quyền xem và chỉnh sửa, trong khi nhân viên chỉ có thể xem được tài khoản của chính họ.

Tiếp theo, cần phải xác định rõ tài khoản nào sẽ được cấp quyền điều chỉnh, thay đổi cơ sở dữ liệu. Do vậy, tùy từng mô hình hệ thống, quy mô của công ty, tổ chức mà khối lượng công việc của người quản trị cũng sẽ tăng lên, bên cạnh đó, kiến thức và kinh nghiệm sử dụng của mỗi người lại khác nhau, do vậy việc làm sao đảm bảo được mức an toàn tối thiểu cho toàn bộ nhân viên cũng trở nên vất vả hơn rất nhiều. Cụ thể, trong phần tiếp theo của bài viết, chúng tôi sẽ đề cập đến khái niệm role và mối quan hệ với Windows Group, làm thế nào để gán thêm hoặc từ chối quyền truy cập của 1 hoặc nhiều tài khoản người dùng trong thời gian hoạt động.

Về mặt bản chất, role là 1 phần của tiered security model:

 + Login security: thực hiện quá trình kết nối tới server

 + Database security: nhận quyền truy cập tới cơ sở dữ liệu

 + Database object: nhận quyền truy cập tới từng đối tượng và dữ liệu riêng biệt trong toàn hệ thống

Trước tiên, người dùng phải tiến hành đăng nhập vào server bằng cách nhập mật khẩu, sau khi quá trình kết nối này hoàn tất, việc truy cập tới các cơ sở dữ liệu đã lưu trữ sẽ được thực hiện qua việc chỉ định tài khoản. Và khi người quản trị đã hoàn tất việc gán quyền cho những tài khoản này, họ sẽ không thể truy cập đến những vùng dữ liệu không được phép khác.

Tuy nhiên, ưu điểm lớn nhất của việc sử dụng role chính là hiệu quả trong quá trình quản lý. Các bạn hãy thử tưởng tượng rằng, nếu 1000 nhân viên cần xem hoặc chỉnh sửa dữ liệu cá nhân của họ sớm nhất có thể, thì bộ phận quản trị hệ thống chỉ việc lựa chọn trong Windows Group có sẵn, và sau đó là gán toàn bộ vào SQL Server role tương ứng – thay vì việc phải chỉnh sửa 1000 tài khoản lần lượt theo cách thủ công. Hiểu rõ hơn về trường hợp này, Windows Group có chứa toàn bộ tài khoản người dùng với quyền truy cập tương ứng tới hệ thống mạng trên Windows, và các role của SQL Server sẽ phụ thuộc toàn bộ vào những thành phần có liên quan. Do vậy, chúng ta chỉ cần gán quyền theo nhu cầu với cơ sở dữ liệu của SQL Server và tài khoản tương ứng trên Windows.

Các role của server thường được giám sát và quản lý bởi Database Administrator – DBA và áp đụng được với toàn bộ server, chứ không riêng gì đối với từng thành phần riêng rẽ. Ở chế độ mặc định, các role này được thiết lập public đối với tất cả các tài khoản, và toàn bộ những tài khoản sau khi thêm vào SQL Server cũng sẽ tự động được gán role public.

Việc tạo cơ sở dữ liệu là của riêng người quản trị, nhưng các bạn cần lưu ý một số điểm sau về quy chuẩn chung khi tạo bảng:

 - db_owner: toàn bộ người dùng có quyền full – access

 - db_accessadmin: người dùng có quyền quản lý các Windows Group và tài khoản SQL Server đăng nhập

 - db_datareader: người dùng có thể đọc được toàn bộ dữ liệu

 - db_datawriter: người dùng có quyền thêm, xóa hoặc chỉnh sửa dữ liệu trong bảng

 - db_ddladmin: người dùng có thể sử dụng các file dynamic – link library (DLL)

 - db_securityadmin: người dùng có thể chỉnh sửa vai trò role và quản lý các bậc quản lý, phân quyền khác

 - db_bckupoperator: người dùng có thể sao lưu cơ sở dữ liệu

 - db_denydatareader: người dùng không thể xem dữ liệu trong bảng

 - db_denydatawriter: người dùng không thể xem, thay đổi hoặc xóa dữ liệu trong bảng

Với các role cố định thì chúng được áp dụng trên toàn bộ mô hình của hệ thống, với 1 số điểm lưu ý chung như sau:

 - SysAdmin: toàn bộ người dùng đều có thể thực hiện các thao tác trên server

 - ServerAdmin: toàn bộ người dùng đều có thể thiết lập, tùy chỉnh các phương án lựa chọn trên server

 - SetupAdmin: toàn bộ người dùng đều có thể quản lý các server đã kết nối, những tùy chọn và tác vụ hoạt động của SQL Server

 - Security Admin: toàn bộ người dùng đều có thể quản lý các thành phần có liên quan đến an ninh, bảo mật

 - ProcessAdmin: toàn bộ người dùng đều có thể tắt hoặc tạm dừng bất kỳ tiến trình nào hoạt động trên SQL Server

 - DbCreator: toàn bộ người dùng đều có thể tạo, thay đổi, xóa hoặc khôi phục cơ sở dữ liệu

 - DiskAdmin: toàn bộ người dùng có thể quản lý các file của SQL Server

 - BulkAdmin: toàn bộ người dùng có thể thực hiện nhiều lệnh insert khác nhau

Tiếp theo, chúng ta sẽ sử dụng SQL Server Enterprise Manager để gán Windows group và cơ sở dữ liệu Pubs (database mẫu đi kèm với SQL Server 2000). Bước đầu tiên là tạo tài khoản đăng nhập của Group Guest, qua đó người sử dụng có thể truy cập được vào SQL Server:

 - Khởi động Enterprise Manager, mở thư mục security

 - Nhấn chuột phải vào mục Logins, chọn New Login từ menu hiển thị, cửa sổ New Login sẽ hiển thị như hình dưới. Lưu ý rằng trong trường hợp này, Windows Authentication đã được lựa chọn sẵn, và chúng ta sẽ sử dụng Windows Authentication Mode, trái ngược với SQL Server Mixed Mode (Mixed Mode bao gồm Windows Security và mô hình bảo mật sẵn có của SQL Server, và Windows Authentication luôn khuyến cáo được sử dụng cùng với SQL Server):

 - Nhấn nút bên cạnh ô Name để hiển thị SQL Server Login Properties – New Login, chọn tiếp Windows group tương ứng (ở đây là Guests), nhấn tiếp nút Add sau đó nhấn OK để đóng cửa sổ SQL Server Login Properties—New Login:

 - Tại thẻ General, chọn cơ sở dữ liệu Pubs từ danh sách Database, lựa chọn mặc định là Master nhưng các bạn đừng nên gán quyền truy cập cho database này, bởi vì nó sẽ can thiệp trực tiếp tới quá trình cài đặt của SQL Server.

Ngày nay cơ sở dữ liệu ngày càng quan trọng trong việc xây dựng và lưu trữ thông tin của con người. Bạn có thể tự học hoặc tham gia khóa học kinh nghiệm SQL Server tại Stanford. Với đội ngũ giảng viên, chuyên gia giàu kinh nghiệm, chuyên môn vững vàng sẽ giúp bạn nắm chắc kiến thức về cơ sở dữ liệu cũng như áp dụng vào thực tế công việc của mình.

(Tổng hợp & Sưu tầm)

Tags: