Toon posts:

[alg] Databasemodel usermanagement

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben op het met moment bezig met het ontwikkelen van een customer relation manager voor een non-profit organisatie met afdelingen in negen verschillende steden in Nederland.

Nadeel van het oude systeem is dat het beheren van de rechten voor de verschillende gebruikers te kort schiet. Zo kan niet aangegeven worden dat een gebruiker uit Amsterdam alleen in de gegevens van Rotterdam mag kijken maar er niks mag veranderen of toevoegen.

Mijn idee om dit probleem op te lossen is het volgende, het wel of niet toegang verlenen aan een gebruiker moet op twee niveau's gebeuren.

1- Role based, naast de eindgebruikers zijn er ook nog een aantal gebruikers die het beheer van het systeem gaan doen. Denk hierbij aan gebruikers toevoegen en meer van dat soort dingen. De applicatie moet dus eerst checken of een gebruiker uberhaupt rechten heeft om dit te doen.

2- Owner based, in kort mogen niet alle gebruikers zomaar alle gegevens kunnen bekijken/bewerken/toevoegen/verwijderen. Deze tweede laag van het systeem moet dus gaan kijken of de gebruiker niet alleen de juist rechten heeft om iets te doen maar ook toestemming heeft om de betreffende actie uittevoeren op de inhoud.

Wat denken jullie hiervan? IK ben er nog niet helemaal uit of dit wel het beste systeem is.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Zolang je gebruikersgroepen kan maken met universele rechten, en toch specifieke gebruikers specifieke rechten kan geven, dan ben je er toch?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Eerlijk gezegd zie ik niet veel (conceptueel) verschil tussen het eerste en het tweede geval.

En zoals hier pas ergens in een andere thread gezegd is, zijn roles een mooie abstractielaag tussen acties en gebruikers.

Verwijderd

Topicstarter
Voor iedereen dit zich met enige regelmaat bezighoudt met database modelling en MySql is het volgende programma wellicht zeer interessant, en gratis!

http://www.fabforce.net/dbdesigner4/

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 13:32
Verwijderd schreef op 24 juli 2004 @ 15:01:
Voor iedereen dit zich met enige regelmaat bezighoudt met database modelling en MySql is het volgende programma wellicht zeer interessant, en gratis!
http://www.fabforce.net/dbdesigner4/
Bedankt voor de tip!

ontopic: Wil je een palt rechtenmodel maken of moeten rechten ook overgenomen kunnen worden van parent op child e.d.?
Dus:
groep rotterdam heeft recht a
groep rotterdam-afdeling X heeft dus ook recht a tenzij anders ingestelt.

Hier is namelijk heel veel mee mogelijk.

Verwijderd

Topicstarter
Ik heb nu het volgende bedacht:
Afbeeldingslocatie: http://stuwww.uvt.nl/~s252178/plaatjes/dbdesign.png

Een klein beetje uitleg erbij is denk ik wel nodig.

In principe is het systeem role based, dit is te zien in het groen gedeelte van het plaatje. Hier is denk ik niks speciaals aan, allemaal vrij recht toe recht aan. Een gebruiker heeft een of meerdere rollen en deze rollen geven het recht om bepaalde acties wel of niet te doen.

Naast een of meerdere rollen maakt elke gebruiker ook deel uit van een of meerdere steden. Deze steden maken weer deel uit van city_groups, steden in de zelfde groep hebben onderling meer rechten dan steden uit verschillende groepen.

Nu komt het content based gedeelte. Alle content in de rest van de applicatie krijgt ook een record in de objects tabel. De objects table heeft verschillende doelen.
- op een centrale plaats informatie verzamelen over alle objecten in de database, wie heeft hem aangemaakt? wanneer? en wanneer is het object gewijzigd? en meer van dat soort dingen.
- versie beheer van de verschillende objecten [database moet hiervoor nog worden aangepast]
- basis bieden op content based rechten te verschaffen.

Op vier verschillende niveau's krijgen de gebruikers rechten over de verschillende objecten. Deze zijn: erase, edit, view en transfer (iemand anders eigenaar van het object maken), de niveau's waarop dit gaat gebeuren zijn:
- city niveau
- city groups niveau
- roles niveau
- user niveau

Ik ben geen expert op dit gebied en zou graag willen weten wat jullie van dit alles denken. Sorry voor het vern**ken van de layout.

Verwijderd

ivm. rechtensysteem op user-niveau (het groene):

- Waarvoor dient de user_has_actions? Een user mag toch acties uitvoeren volgens de roles waartoe hij behoort?
- Je zegt "...en deze rollen geven het recht om bepaalde acties wel of niet te doen". Ga je actions maken in de zin van iets niet te mogen (bijv. 'user is not allowed to reply'), naast de gewone acties (bijv. 'user is allowed to post'). Wat ga je dan doen indien een user 'lid is' van 2 roles, waarvan de eerste zegt dat hij wel action X mag uitvoeren, en de tweede zegt dat hij dat niet mag doen? Wat je ook kiest, het komt niet echt logisch over vind ik.

Het is duidelijk dat je nooit tegensprekende acties mag maken (posten <-> niet posten). En verder kan je best alleen acties maken die zeggen dat iets mag/kan. Als de ene role dan zegt dat de user mag posten, en de tweede role zegt er helemaal niets over, dan mag hij gewoon posten. Als je wilt dat een user een bepaalde actie niet mag doen, wordt de actie dus nergens vermeld in de roles waartoe die user behoort.

[ Voor 30% gewijzigd door Verwijderd op 26-07-2004 15:40 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

djluc schreef op 24 juli 2004 @ 15:09:
[...]
Bedankt voor de tip!

ontopic: Wil je een palt rechtenmodel maken of moeten rechten ook overgenomen kunnen worden van parent op child e.d.?
Dus:
groep rotterdam heeft recht a
groep rotterdam-afdeling X heeft dus ook recht a tenzij anders ingestelt.

Hier is namelijk heel veel mee mogelijk.
Inheritance is daarentegen wel heel moeilijk en net zo eenvoudig af te vangen door iedereen in Rotterdam de Role 'Rotterdammer' te geven en daarnaast eventueel afdelingsspecifieke roles.

* curry684 is geen fan van inheritancemodellen in RDBMS'en als de alternatieve oplossing tig keer simpeler en net zo effectief is.

Professionele website nodig?


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Ik heb ook ongeveer een vergelijkbare DBModel, alleen heb ik bij je Objects tabel voor de versiebeheer gewoon minor_version, major_version toegevoegd. Vervolgens heb ik nog een tabel object_data (id, content) de content veld is vervolgens een blob waar ik dus zowel tekst (zoals XML zie mijn topic) als binary data kan opslaan (bijv. plaatjes etc.).

[ Voor 49% gewijzigd door alienfruit op 26-07-2004 17:09 ]


Verwijderd

curry684 schreef op 26 juli 2004 @ 15:42:
[...]

Inheritance is daarentegen wel heel moeilijk en net zo eenvoudig af te vangen door iedereen in Rotterdam de Role 'Rotterdammer' te geven en daarnaast eventueel afdelingsspecifieke roles.

* curry684 is geen fan van inheritancemodellen in RDBMS'en als de alternatieve oplossing tig keer simpeler en net zo effectief is.
Hoe doe je dan bijv. dat de mensen uit rotterdam mogen posten èn replyen (ik neem maar een forum als voorbeeld), maar dat de mensen uit afdeling X alleen mogen posten (en dus niet replyen)? Heb je dan een soort priority nodig over de verschillende roles waartoe een gebruiker behoort?

[ Voor 10% gewijzigd door Verwijderd op 26-07-2004 19:16 ]


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 22-05 14:17
Verwijderd schreef op 25 juli 2004 @ 17:06:
Ik heb nu het volgende bedacht:
[afbeelding]

Ik ben geen expert op dit gebied en zou graag willen weten wat jullie van dit alles denken. Sorry voor het vern**ken van de layout.
offtopic:
Waarmee is dit plaatje gemaakt?

zeroxcool.net - curity.eu


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

ZeRoXcOoL schreef op 26 juli 2004 @ 19:30:
[...]

offtopic:
Waarmee is dit plaatje gemaakt?
Als ik een gokje mag wagen: [rml]dennisvan in "[ alg] Databasemodel usermanagement"[/rml] ;)

Today's subliminal thought is:


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

DBDesigner v4 zie link eerder in het topic

  • Vaudtje
  • Registratie: April 2002
  • Niet online
Mijn bezwaar tegen het voorgestelde datamodel is dat het bepaald niet generiek is. Waarom niet gewoon een abstracte 'rol', eventueel hierarchisch?
Je geeft nu aan dat bedacht is dat het vervelend is dat rechten niet op lokatieniveau kunnen worden ingesteld, dus voeg je steden toe. Wat nou als ze over drie dagen nog een vereiste bedenken?
Ik moet bekennen dat ik dan ook niet echt een kant en klaar idee heb van hoe het abstract maar toch bruikbaar (begrijpelijk en performant) moet zijn, maar met de huidige ontwerpinstelling loop je mijns inziens wel een groter risico dat je systeem door nieuwe specs wordt ingehaald.

[ Voor 4% gewijzigd door Vaudtje op 26-07-2004 20:36 ]

In deeze zin staan drie fauten


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 14:25

The Eagle

I wear my sunglasses at night

Ik werk zelf met PeopleSoft (ERP pakket), en de seurity is daar als volgt opgebouwd:

code:
1
User N:N Role N:N Permission list N:N Pagina


Oftewel: een user heeft 1 of meerdere rollen (kan zelf alleen aan- en afmelden zijn, of alleen inzagerechten oid), en een rol kan 1 of meerdere permission lists bevatten. Evenzo kan een Permission list 1 of meerdere pagina's bevatten - in jouw geval zouden dat rechten zijn. Zo heb je 4 lagen die je kunt verdelen; lijkt me sterk dat dat niet genoeg zou zijn. De vraag is alleenhoe je zoiets opbouwt ;)
Overigens zit er binnen PS nog meer in een User als alleen een rol, evenzo geldt dat voor een rol en een permissionlist - maar dat doet er nu even niet toe ;)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • dirkpostma
  • Registratie: Juni 2001
  • Laatst online: 10-05 16:53
lamaar

[ Voor 116% gewijzigd door dirkpostma op 26-07-2004 21:43 ]

Pagina: 1