แนวคิดหลักของ RBAC

RBAC (Role-Based Access Control) คือโมเดลควบคุมสิทธิ์โดยอิงจาก “บทบาท (Role)” แทนที่จะอิงจากตัวผู้ใช้โดยตรง

User → Role → Permission → Resource/Action

องค์ประกอบอธิบาย
Userผู้ใช้งานระบบ
Roleตำแหน่ง/บทบาท เช่น Admin, HR, Employee
Permissionสิทธิ์ เช่น read:employee, edit:salary, approve:leave
Resourceสิ่งที่เข้าถึง เช่น Employee, Document, Report

ตัวอย่างโมเดล RBAC (Base Table)

users ← รายชื่อผู้ใช้
roles ← บทบาท
permissions ← สิทธิ์การกระทำ
user_roles ← เชื่อม user ↔ role (many-to-many)
role_permissions ← เชื่อม role ↔ permission (many-to-many)

🧰 ตัวอย่าง Role

RoleDescription
ADMINจัดการระบบทั้งหมด
HR_MANAGERดูและแก้ไขข้อมูลพนักงาน
EMPLOYEEดูโปรไฟล์ตัวเอง, ยื่นลา

🔐 ตัวอย่าง Permission

ResourceActionPermission ID
employeereadread:employee
employeeeditedit:employee
leave_formapproveapprove:leave

🛠 Best Practices ในการออกแบบ RBAC

หัวข้อแนะนำ
✅ แยก Role กับ Permission ชัดเจนหลีกเลี่ยง hardcode
✅ รองรับ multiple roles per userเช่น user เป็นทั้ง HR + Approver
✅ ใช้ Naming Convention ที่ชัดเช่น read:employee, approve:leave
✅ พิจารณาสร้าง “Role Template”สำหรับ config ผ่าน UI
✅ Audit Loggingเมื่อมีการเปลี่ยนสิทธิ์ ต้อง log

Posted in

ใส่ความเห็น