[SQL / Datamodel] Rechten, groepen en gebruikers.

Pagina: 1
Acties:

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Voor een projectje ben ik bezig met een datamodelletje.

Je hebt groepen, gebruikers en privelleges. Een groep kan privelleges bezitten, maar een individuele gebruiker ook. Hoe ga ik dit aan elkaar koppelen?

Ik heb dus drie tabellen: users, groups en privelleges. Ik wil twee (users en groups) koppelen aan privelleges)

Oplossingen zoals ik al had bedacht:
  1. Twee kruistabellen, tussen users&privelleges groups&privelleges
  2. Eén kruistabel, maar een extra veld om aan te geven of het om een user of een group gaat: dus:
    • priv_id
    • obj_id
    • obj_class ENUM('user','group')
Welke van deze twee kan ik het beste kiezen? Het hele rechten / privellegesysteem wordt best complex, dus een goed doordacht en uitbreidbaar model is het belangrijkst. Performance is wel op te lossen.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Volgens mij is voor beide oplossingen iets te zeggen, maar mijn voorkeur zou uitgaan naar 2. Dat is overigens puur gevoelsmatig in verband met een beter overzicht dat je dan krijgt wanneer je wil weten welke rechten gelden.

Overigens dien je wel goed na te denken over welke van de twee voorkeur krijgt boven de ander: zijn de groepsprivileges de baas, of winnen de privileges die je op de gebruiker hebt gezet het?

My personal website


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Weet je zeker dat je groepen wilt hebben en niet rollen?
Maw. kan een gebruiker meerdere rollen tegelijk hebben, of behoort een gebruiker altijd bij 1 groep?

Who is John Galt?


  • Skaah
  • Registratie: Juni 2001
  • Niet online
Een gebruiker kan lid zijn van meerdere groepen. De groeps-privelleges kunnen overruled worden door de gebruikersprivelleges.

Verwijderd

gebruikers <- gebruikers_groepen -> groepen (gewoon lid van)

groepen <- grp_priv -> privileges (groepen hebben privileges)

gebruikers <- geb_priv -> privileges (gebruiekrs hebben privileges)

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024

Verwijderd

Een gebruiker kan lid zijn van meerdere groepen. De groeps-privelleges kunnen overruled worden door de gebruikersprivelleges.
Wat ook zou kunnen is dat je alleen privileges aan groepen hangt en voor iedere gebruiker een een-persoons groepje aanmaakt en daar rechten aanhangt. Op die manier is het controleren van rechten altijd het controleren van groepen.

Overigens zou ik organisatorisch overwegen op aan losse gebruikers helemaal nooit rechten uit te delen en dit alleen aan 'echte' groepen te doen. Je systeem is dan heel wat beheersbaarder qua complexiteit.
Pagina: 1