Bài toán phân quyền vấn đề muôn thuở và rất khó hiểu.
(* Trong bài viết này mình chỉ nêu quan điểm và những thứ mình đã từng làm với việc phân quyền trên thực tế, chỉ mang tính tham khảo cho mọi người. Nếu có bất kỳ ý kiến góp ý nào hãy bình luận ở dưới để chúng ta cùng thảo luận thêm.) Phân quyền công việc mang đầy tính năng nề đối với dev nhưng ...
(* Trong bài viết này mình chỉ nêu quan điểm và những thứ mình đã từng làm với việc phân quyền trên thực tế, chỉ mang tính tham khảo cho mọi người. Nếu có bất kỳ ý kiến góp ý nào hãy bình luận ở dưới để chúng ta cùng thảo luận thêm.)
Phân quyền công việc mang đầy tính năng nề đối với dev nhưng lại đầy sáng tạo cho người dùng. Như bạn biết khi phần mềm được dựng lên là có vô vàn rắc rối xoay quanh quyền hạn người sử dụng, Vì thế lập trình viên đã tạo ra một thứ mang tên phân quyền để tránh tình trạng mọi người đều là vua trong chương trình đó đơn giản với việc "Bạn được quyền làm việc đó hay không?".
1. Phân quyền là gì?
Tưởng tượng đơn giản như này nhé.
- Bạn là sếp bạn có toàn quyền với nhân viên của mình
- Bạn là trưởng phòng bạn chỉ có quyền với nhân viên trong phòng của mình
- Bạn là trưởng nhóm dự án bạn chỉ có quyền với các thành viên trong nhóm
- Và Nhóm < Phòng < công ty.
- Như vậy bạn có thể thấy trong công ty này có 3 loại quyền hạn và chúng ta cần phân quyền theo nó
2. Bạn thường dùng loại phân quyền như thế nào?
- Câu hỏi này mình đặt ra ban đầu là "Có các loại phân quyền nào?" nhưng thật sự việc phân quyền này rất ít được public do nó mang tính chất riêng tư của những dự án. Nên nếu bạn search thì chủ yếu sẽ chỉ tìm được cách tạo tài khoản sử dụng cho user trong các HQTCSDL.
- Ở bài viết này mình sẽ nói về việc phân quyền bằng nhóm quyền (Group) Và đưa ra 1 số cách dựng CSDL (db).
3. Phân quyền theo group là gì và làm như thế nào ?
- Phân quyền theo group là cách gọi chung của mình cho việc bạn nhóm nhiều thành viên trong 1 tổ chức có cùng một quyền hạn thực thi công việc. Lúc đó ta có thể nhóm họ vào 1 group để dễ dàng trao quyền hạn.
- Như vậy từ cách phân quyền theo group này ta có thể sử dụng với "3 nấc" khác nhau.
Ví dụ đơn giản về 3 cách này nhé