[SQL SERVER] Hướng dẫn cấu hình cho phép user chỉ được quyền truy cập vào một số table đặc biệt trong database
Trong lập trình ứng dụng, nhiều lúc chúng ta cần phân quyền sqlserver cho phép người dùng (user) chỉ được phép kết nối đến database của sqlserver, nhưng chỉ được phép thao tác quyền (insert, update hoặc delete) trên một số table đặc biệt do mình quy định. ...
Trong lập trình ứng dụng, nhiều lúc chúng ta cần phân quyền sqlserver cho phép người dùng (user) chỉ được phép kết nối đến database của sqlserver, nhưng chỉ được phép thao tác quyền (insert, update hoặc delete) trên một số table đặc biệt do mình quy định.
Ví dụ: Mình đang viết một ứng dụng quản trị ERP của công ty, nhưng công ty có thuê một công ty bên ngoài phát triển phần mềm nhân sự.
Và bây giờ là bên phần mềm nhân sự, nó yêu cầu chúng ta cho phép họ truy cập và thao tác trên một số table nhất định.
Cách giải quyết vấn đề này là: chúng ta tạo thêm một tài khoản trong sqlserver, và cấu hình cho phép user đó chỉ được một số quyền (role) như: select, update, insert, delete vào một số table mình quy định.
Bắt đầu thực hành:
Bước 1: Đầu tiên các bạn tạo một tài khoản trong sqlserver
Vào thự mục Sercurity => Logins =>right chuột phải chọn New login
Giao diện thêm user login hiện ra như hình bên dưới:
Trong tab General, các bạn nhập các thông tin:
Login name, password và chọn database cho phép user truy cập như hình bên dưới.
- Tiếp theo, chúng ta chọn tab Server Roles, chọn Server roles là public
- Tiếp theo, chúng ta qua tab User Mapping, để chọn những database nào cho phép user kết nối.
Trong ví dụ bên dưới: mình chọn database NORTHWND
- Vậy đến bước này là chúng ta đã tạo thành công mới một user login
Bước 2: Sử dụng lệnh T-SQL thêm quyền cho người dùng vào một số table đặc biệt.
Ở ví dụ trên: là mình cấu hình cho phép user thaomeo truy cập vào table employees với các quyền (insert, select, update).
Vậy là xong, bây giờ chúng ta sẽ đăng nhập vào tài khoản thaomeo để xem kết quả:
Đến đây là xong, chúc các bạn thành công.
HAVE FUN :)