ฉันกำลังพยายามติดตามรูปแบบการควบคุมการเข้าถึงฐานบทบาทเพื่อ จำกัด สิ่งที่ผู้ใช้สามารถทำได้หรือไม่สามารถทำได้ในระบบของฉัน
จนถึงตอนนี้ฉันมีหน่วยงานดังต่อไปนี้:
users - ผู้ที่จะใช้ระบบ ที่นี่ฉันมีชื่อผู้ใช้และรหัสผ่าน role - การรวบรวมบทบาทที่ผู้ใช้สามารถมีได้ ทรัพยากรต่างๆ เช่นผู้จัดการผู้ดูแลระบบ ฯลฯ - สิ่งที่ผู้ใช้สามารถจัดการได้ เช่นเดียวกับสัญญาผู้ใช้ร่างสัญญา ฯลฯ การดำเนินการ - สิ่งที่ผู้ใช้สามารถทำกับทรัพยากร ชอบสร้างอ่านอัปเดตหรือลบ
ตอนนี้ความสงสัยของฉันเพิ่มขึ้นที่นี่ในแผนภาพที่ฉันมีความสัมพันธ์เช่นนี้:
การดำเนินงาน (0 .. *) จะดำเนินการเมื่อ ทรัพยากร (0 .. *) ซึ่งจะสร้างตารางที่ผมเรียกว่าสิทธิ์และที่จะจัดเก็บการดำเนินงานและทรัพยากร
ตารางสิทธิ์จะมีลักษณะเช่นนี้ (หนึ่งแถว): ID: 1, การดำเนินการ:สร้าง, ทรัพยากร:สัญญา
ซึ่งหมายถึงการได้รับอนุญาตในการสร้างสัญญา
ฉันทำอย่างนี้เพราะฉันรู้สึกว่าทรัพยากรบางอย่างอาจไม่มีการดำเนินการทุกประเภท ตัวอย่างเช่นสำหรับการลงทะเบียนสัญญาผู้ใช้สามารถอัปโหลดไฟล์ได้ แต่การดำเนินการนี้ไม่สามารถใช้สำหรับการลงทะเบียนผู้ให้บริการได้
ดังนั้นตอนนี้เมื่อผู้ดูแลระบบจะให้สิทธิ์กับบทบาทเขาจะไม่มีรายชื่อของทรัพยากรที่มีการดำเนินการทุกครั้งที่ลงทะเบียนในระบบ
ฉันคิดว่าแต่ละแหล่งข้อมูลมีการรวบรวมการดำเนินงานของตนเองที่สามารถดำเนินการกับเขาได้
ฉันสามารถชี้แจงได้หากบางสิ่งไม่เข้าใจ
นี่เป็นวิธีที่ถูกต้องในการติดตั้ง rbac หรือไม่?
แก้ไข
สิ่งที่ฉันหมายความว่าโดยมีสิทธิ์ตารางซึ่งมีการดำเนินงานและทรัพยากรที่ฉันมีสองตารางพิเศษเพราะผมต้องการที่จะเชื่อมโยงทรัพยากรที่มีการดำเนินงาน ฉันสามารถทำทรัพยากรได้เพียงแค่มีสิทธิ์ที่ตารางสิทธิ์จะเก็บสิทธิ์
แต่สิ่งที่จะเกิดขึ้นก็คือสิทธิ์บางอย่างที่ไม่มีอยู่สำหรับทรัพยากรบางอย่างจะปรากฏขึ้นเมื่อผู้ดูแลระบบมอบหมายให้
ดังนั้นฉันต้องการทราบจากมุมมองการออกแบบฐานข้อมูลหากสิทธิ์ตารางนี้ซึ่งมีการดำเนินงานหนึ่งคอลัมน์และทรัพยากรอื่นถูกต้อง? ฉันจะพบปัญหาหรือไม่ถ้ามันเป็นเช่นนี้