Tìm hiểu về khái niệm role trong 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, chúng tôi 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ọ.

pdf15 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2057 | Lượt tải: 5download
Tóm tắt nội dung Tìm hiểu về khái niệm role trong SQL Server, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trê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. 
- Chọn tiếp thẻ Database Access để xem thông tin về cơ sở dữ liệu có sẵn trên hệ thống 
Để tiếp tục, chúng ta phải chọn database mặc định trước khi SQL Server kích hoạt role database. 
Chọn tiếp Pubs (như hình dưới), phần Public role sẽ tự động được gán. Tại thời điểm này, 
chúng ta có thể chọn và gán bất kỳ role nào, bên cạnh đó, group Guest đã được liệt kê sẵn trong 
cột Column: 
 - Nhấn tiếp OK để hoàn tất quá trình này, Enterprise Manager sẽ hiển thị phần đăng nhập mới 
tại cửa sổ bên phải, và cho đến lúc này thì tất cả các thành viên của group Windows Guests đã 
có thể đăng nhập vào SQL Server: 
 - Một cách khác để gán role tương tự như trên, trong Enterprise Manager các bạn chọn Pubs, 
nhấn đúp vào Roles > db_accessadmin để hiển thị cửa sổ Role Properties: 
 - Nhấn nút Add để hiển thị danh sách user và group, chọn tiếp Guest như hình dưới: 
 - Cửa sổ Database Role Properties sẽ hiển thị sau khi gán thêm phần login của Guest vào role 
db_accessadmin: 
 - Nhấn tiếp OK để hoàn tất quá trình này. 
Tại thời điểm này, chúng ta đã hoàn tất quá trình gán thêm group Windows Guest vào SQL 
Server và group Guest vào cơ sở dữ liệu Pubs và role db_accessadmin. Các thành viên của 
group Guest đã được kế thừa toàn bộ phân quyền trong role db_accessadmin (đã được liệt kê ở 
trên) bên trong cơ sở dữ liệu Pubs. 
Tiếp theo, chúng ta sẽ tạo mới database role. Cụ thể, các role đã được xác định sẵn, ví dụ như 
db_accessadmin lại không được đầy đủ, nhưng chúng ta vẫn có thể tạo được role mới. Ví dụ tại 
đây, chúng ta sẽ tạo role mới có tên là Purchasing: 
 - Quay trở lại bảng điều khiển Enterprise Manager, nhấn chuột phải vào bất kỳ vị trí nào tại 
cửa sổ bên phải, chọn New Database Role từ menu hiển thị. Điền tên Purchasing trong phần 
Name, sau đó nhấn nút Add. Các bạn lưu ý là tại thời điểm này nút chức năng Permissions vẫn 
đang trong tình trạng disable. 
 - Nhấn tiếp nút Add để gán tiếp tài khoản user hoặc group tới phần role. Trong trường hợp này 
là group Guest (hình trên). 
Chúng ta vừa tạo 1 role mới có tên là Purchasing trong cơ sở dữ liệu Pubs 
 - Nhấn OK để đóng cửa sổ này lại. 
Sau khi tạo role mới - Purchasing dành cho database Pubs, chúng ta phải khởi tạo tài khoản 
user nào sẽ được gán vào role của Purchasing (qua group Guest). Và cũng tại đây, các bạn hãy 
thiết lập 1 vài mức phân quyền đơn giản cho role Purchasing này: 
 - Mở lại phần role Purchasing vừa tạo ở bước trên trong cửa sổ Enterprise Manager, và lần 
này nút chức năng Permissions sẽ hoạt động được 
 - Nhấn nút Permissions để mở bảng điều khiển thuộc tính Database Role Properties. Tại đây, 
các bạn có thể thiết lập mức phân quyền tương ứng cho từng đối tượng tại đây. 
 - Ví dụ, nếu đánh dấu vào cột Delete như hình trên tại dòng authors thì toàn bộ thành viên của 
role này đều có thể xóa các bản ghi dữ liệu trong bảng Authors 
 - Nếu để ý kỹ, các bạn có thể thấy rằng việc lựa chọn bảng Authors đồng thời cũng đã kích hoạt 
nút chức năng Columns. Nhấn vào nút Columns này để hiển thị bảng Column Permissions. 
Trong bảng này, chúng ta có thể giới hạn số lượng truy cập trong từng cột nhất định. 
Các server role server từ trước đến nay, như 1 quy luật chung chung, phần lớn những người quản 
trị sẽ không tiến hành gán bất kỳ tài khoản người dùng nào tới server role cố định, vì chúng chỉ 
được dùng cho việc quản trị cơ sở dữ liệu và tài khoản Administrator. Nhưng bên cạnh đó, chúng 
ta vẫn có thể thực hiện được việc gán tài khoản người dùng tới server role bằng 2 cách: dùng 
Enterprise Manager hoặc Query Analyzer. Ví dụ, để gán thêm tài khoản Guest tới server role 
Database Creators qua Enterprise Manager thì cần làm như sau: 
 - Mở rộng phần Security Folder 
 - Nhấn đúp vào mục Server Roles > Database Creators 
 - Nếu muốn chọn và gán group Windows tới phần role, các bạn nhấn nút Add để mở cửa sổ 
Add Members 
 - Chọn tiếp group Windows Guest sau đó nhấn OK để đóng cửa sổ này, gán tiếp group Guest 
vào bảng Server Role Properties: 
 Lưu ý rằng tại thời điểm này thì cả 2 tab của bảng này đã có thể xem được, mở tab General để 
gán tiếp phần login tới role, hoặc sử dụng tab Permissions để chọn câu lệnh SQL tương ứng mà 
server role này có thể thực thi. Sau đó, nhấn OK để hoàn tất quá trình này. 
Còn nếu muốn sử dụng Query Analyzer, các bạn hãy gõ cấu trúc lệnh dưới đây, với thông số 
name tượng trưng cho user và role chính là 1 trong những thành phần đã được liệt kê ở bên trên: 
Exec sp_addserverrolemember name, role 
Ví dụ, câu lệnh như dưới đây sẽ cho phép chúng ta gán bản ghi Martin Reid vào role SysAdmin: 
Exec sp_addserverrolemember “Martin Reid”, 
“SysAdmin” 
Một trong những thành phần quan trọng nhất của SQL Server là system stored procedure – có 
khả năng hỗ trợ người sử dụng trong việc quản lý nhiều khía cạnh khác nhau trên server. Danh 
sách đầy đủ của system stored procedure các bạn có thể tham khảo thêm tại đây. Chúc các bạn 
thành công! 

File đính kèm:

  • pdfTìm hiểu về khái niệm role trong SQL Server.pdf
Tài liệu liên quan