Bài tập

Giới thiệu User Logins, Server Roles, Database Schemas trong SQL Server

Huy Erick

SQL Server là một hệ quản trị cơ sở dữ liệu mạnh mẽ cho phép người dùng tạo tài khoản và đăng nhập vào hệ thống. Mỗi tài khoản người dùng truy cập vào SQL...

SQL Server là một hệ quản trị cơ sở dữ liệu mạnh mẽ cho phép người dùng tạo tài khoản và đăng nhập vào hệ thống. Mỗi tài khoản người dùng truy cập vào SQL Server thông qua một tài khoản riêng.

Khi tạo một tài khoản người dùng mới, quản trị viên cấp phát các quyền (Server Roles) và phạm vi truy cập (Database Schemas) cho tài khoản này.

Tạo tài khoản

  • Sử dụng SQL Server Management Studio, mở rộng tùy chọn "Security" và chuột phải vào "Logins".
  • Chọn "New Login...".
  • Điền đầy đủ thông tin trong tab "General".
  • Vào tab "Server Roles" để chọn các đặc quyền cho tài khoản trong SQL Server.
  • Tiếp theo là tab "User Mapping" để chọn các Database và Schema mà tài khoản có thể truy cập. Chọn các đặc quyền (Role) đối với Database.
  • Chọn "OK" để hoàn thành việc tạo tài khoản.

Đăng nhập thử tài khoản mới

  • Kết nối lại với SQL Server bằng tài khoản mới bằng cách chọn "Change Connection..." trong menu "Query" của thanh công cụ.
  • Nhập các thông tin đăng nhập của tài khoản mới.
  • Thực hiện kiểm tra kết quả.

Hình ảnh minh họa

Để giới hạn mức độ truy cập trên từng tài khoản người dùng đối với SQL Server, chúng ta có khái niệm Server Roles.

Khi chúng ta tạo tài khoản, chúng ta có 1 tab "Server Roles" để chọn các đặc quyền trên SQL Server.

Liệt kê các Server Role

  • Từ SQL Server Management Studio, mở rộng "Security" folder bên trong "Object Explorer".
  • SQL Server cung cấp 9 Server Roles. Chúng không thể thêm hoặc xoá bất kỳ Server Role nào.

Giải thích về các Server Role

Server Role Giải thích
sysadmin Có thể làm bất kỳ điều gì trong SQL Server
serveradmin Có thể tuỳ chỉnh cấu hình máy chủ và tắt máy chủ
setupadmin Có thể thêm và xóa các máy chủ được liên kết bằng cách sử dụng các câu lệnh Transact-SQL
securityadmin Có thể GRANT, DENY, REVOKE với cơ sở dữ liệu được cấp quyền truy cập. Có thể tự thay đổi mật khẩu
processadmin 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 Có thể tạo, thay đổi, xoá và khôi phục bất kỳ cơ sở dữ liệu nào
diskadmin Có thể quản lý các file của SQL Server
bulkadmin Có thể thực thi các câu lệnh BULK INSERT
public Không thể làm bất kỳ điều gì tác động tới cơ sở dữ liệu. Chỉ có thể truy cập tới các Object được public bên trong cơ sở dữ liệu

Trong SQL Server, Database Schemas hỗ trợ quản lý bảo mật và giới hạn truy cập với các tài khoản khác nhau.

Database Schemas là gì?

Database Schemas giống như namespace trong lập trình. Nó là một thùng chứa các Object (Table, SP, View, ...). Bạn có thể giới hạn quyền đăng nhập người dùng bằng cách chỉ cho phép truy cập tới 1 Schema nhất định của Database.

Tạo Database Schema

  • Từ Object Explorer, mở rộng folder "Security" và chọn "Schemas".
  • Chuột phải "Schemas" và chọn "New Schema...".
  • Điền thông tin tại tab "General". Ví dụ: đặt tên Schema là "Maintenance".
  • Sang tab "Permissions" để thêm người dùng có thể truy cập vào schema này.
  • Chọn "Search..." để thêm người dùng, sau đó chọn "OK".
  • Sau khi đã thêm người dùng thành công, cấp quyền cho họ với Schema này.
  • Chọn "OK".

Hình ảnh minh họa

Thêm một bảng vào Database Schema

Chúng ta có thể thêm một bảng đã tồn tại trong Database vào Schema mới chúng ta vừa tạo bằng cách thay đổi từ Schema mặc định "dbo" sang Schema mới "Maintenance".

  • Tới Table mà chúng ta muốn thêm, chuột phải chọn Design.
  • Từ Properties, chọn Schema để thay đổi.
  • Sau khi thay đổi, sẽ có một cảnh báo "Changing the schema of this object will result in all current permissions being dropped. Are you sure you want to proceed?". Chọn "OK".
  • Tắt form và nhấn "Yes" để lưu phần thay đổi.

Xác nhận kết quả

  • Nhấn "Refresh" lại folder "Tables" bằng cách chuột phải và chọn "Refresh".
  • Kiểm tra kết quả.

Mình xin kết thúc bài viết tại đây. Cảm ơn các bạn đã dành thời gian đọc bài viết này.

1