Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lược đồ DB cho RBAC với nhiều cấp độ vai trò

Kinh nghiệm của tôi khi thử nghiệm triển khai RBAC tùy chỉnh như sau:

  1. Bạn đã đọc rất nhiều tài liệu về RBAC và nghĩ rằng bạn hiểu nó. Sau đó, bạn tiếp tục và cố gắng thực hiện nó, chỉ để nhận ra rằng bạn không thực sự hiểu nó chút nào. Cuối cùng thì điều đó sẽ có ý nghĩa khi bạn tiến hành dự án.

  2. Dựa trên câu hỏi của bạn, bạn đã biết miền doanh nghiệp mà bạn muốn áp dụng RBAC. Nhưng hãy quên đi các đối tượng kinh doanh thực tế lúc này. Việc triển khai RBAC của bạn phải chung chung, nghĩa là bạn có một lược đồ DB bao gồm các bảng Vai trò, Người dùng, Quyền, Hoạt động, v.v. Sau đó, bạn sẽ có các đối tượng ánh xạ tới các bảng như vậy (quan hệ một-một).

Khi bạn có triển khai RBAC này, nó có thể được mô hình hóa trên thực tế cho bất kỳ lĩnh vực kinh doanh nào, chẳng hạn như 'Deparment' mà bạn đã đề cập.

Chỉ cần nhớ rằng không phải tất cả đều hoàn hảo ... Tôi đã nâng cao / sửa đổi / bắt nguồn từ tài liệu RBAC thực tế để thêm các tính năng tùy chỉnh, nâng cao hiệu suất, v.v.

Tôi đã không làm việc này trong một thời gian, vì vậy tôi hy vọng tôi làm đúng trong những điều sau:

  • Người dùng:Các phiên bản được tạo và lưu vào bảng sao lưu của nó.
  • Vai trò:Các phiên bản được tạo và lưu vào bảng sao lưu của nó. Các vai trò sẽ được chỉ định cho người dùng.

  • Quyền:Một quyền về cơ bản là sự kết hợp của một Thao tác trên một Đối tượng. Quyền được chỉ định cho các vai trò.

  • Hoạt động:Một hoạt động đơn giản là bất cứ điều gì bạn muốn. Nó có thể là CRUD (tạo, đọc, cập nhật, xóa) hoặc cũng có thể là 'in', 'tìm kiếm' hoặc bất cứ thứ gì con người (hoặc hệ thống) có thể thực hiện trên một đối tượng (hoặc một nhóm đối tượng).

  • Đối tượng:Về cơ bản, đây là tất cả các đối tượng tạo nên miền doanh nghiệp của bạn.

Để có thêm sức mạnh, bạn có thể triển khai các ràng buộc để áp dụng một lượng lớn các hạn chế khác nhau.

Với khung này, bạn sẽ có thể lập bản đồ:

  • Ai có thể chỉ định người dùng vào một bộ phận
  • Ai có thể xóa họ khỏi các phòng ban
  • Có thể có bao nhiêu người dùng trong một bộ phận
  • Loại người dùng nào (dựa trên vai trò được chỉ định của họ) có thể ở trong một bộ phận
  • Cuộn nào có thể thực hiện các thao tác nào đối với một bộ phận (tạo, đọc, cập nhật, xóa chúng)
  • Vv.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cài đặt MySQL gem trên Mac OS X

  2. wildfly đăng ký mysql làm nguồn dữ liệu

  3. Lỗi mã hóa khi ghi dữ liệu từ tệp excel vào cơ sở dữ liệu (mysql)

  4. Bảng SQL một cột, cột là một ID - điều này có điên rồ không?

  5. Mắc kẹt với quyền truy cập bị từ chối cho người dùng 'root' @ 'localhost' - Terminal, Mac