PDA

Bekijk Volledige Versie : Permissiesysteem in mysql?



StriKe
31/01/05, 13:55
Hallo,

Ik gebruik een loginscript die werkt met levels.

Level 0 mag bijvoorbeeld heel wat minder doen op de website dan iemand
die een hoger level heeft.

Nu dacht ik eraan om alle handelingen in een kolom te steken, en dan ook
nog per level een kolom bij te maken.

In die tabel zou ik dan kunnen aanduiden welke handelingen bij welke
levels uitgevoerd mogen worden.

Bij de scripts (die in PHP geschreven zouden worden) zou ik dan wel
telkens de database moeten raadplegen om te zien of de handeling die
uitgevoerd gaat worden wel mag bij het level die bij de gebruiker hoort.

Het level van de gebruiker haal ik maar één keer op uit de database, maar
van de verschillende handelingen moet dat iedere keer opnieuw gebeuren
natuurlijk.

Nu is mijn vraag: hoort het wel op die manier te gebeuren, belast ik op
deze manier de mysqlserver niet te hard?


--
Groeten,
StriKe

http://www.internetfreakz.be

Daniel Tryba
31/01/05, 23:55
StriKe <usenet@internetfreakz.be> wrote:
> Bij de scripts (die in PHP geschreven zouden worden) zou ik dan wel
> telkens de database moeten raadplegen om te zien of de handeling die
> uitgevoerd gaat worden wel mag bij het level die bij de gebruiker hoort.
>
> Het level van de gebruiker haal ik maar ??n keer op uit de database, maar
> van de verschillende handelingen moet dat iedere keer opnieuw gebeuren
> natuurlijk.
>
> Nu is mijn vraag: hoort het wel op die manier te gebeuren, belast ik op
> deze manier de mysqlserver niet te hard?

Te hard belasten zal wel meevallen, maar een goede opzet is het niet.
Wat is het bezwaar om in de functie zelf de benodigde informatie op te
slaan (die is immers statisch).

StriKe
01/02/05, 16:45
Daniel Tryba <spam@tryba.invalid> schreef in
news:41feb676$0$28984$c5fe704e@news6.xs4all.nl:

> Te hard belasten zal wel meevallen, maar een goede opzet is het niet.
> Wat is het bezwaar om in de functie zelf de benodigde informatie op te
> slaan (die is immers statisch).

Het systeem die ik zou gebruiken 'werkt als volgt':
Wanneer je niet in de lijst wordt vernoemd (of die nu in het script zelf
staat of in een database, maakt even niet uit), dan heb je geen rechten om
dat script uit te voeren.

Wanneer het level die jij hebt als gebruiker wel vernoemd is, dan wordt de
code uitgevoerd zoals beschreven in het script.

Stel dat ik nu een level toevoeg, dan zou ik, als ik het in bestanden
opsla, elk bestand appart gaan moeten bijwerken, anders volstaat één
regeltje in de database, namelijk het toevoegen van die permissie.

--
Groeten,
StriKe

http://www.internetfreakz.be

Daniel Tryba
01/02/05, 17:25
StriKe <usenet@internetfreakz.be> wrote:
> Stel dat ik nu een level toevoeg, dan zou ik, als ik het in bestanden
> opsla, elk bestand appart gaan moeten bijwerken, anders volstaat ??n
> regeltje in de database, namelijk het toevoegen van die permissie.

Dat snap ik niet. Als je een level toevoegt moet je erbij vertellen over
welke functies het gaat!

Of je dat dan in een database, 1 of meerdere files moet veranderen is
natuurlijk afhankelijk van je implementatie. Nu zullen waarschijnlijk
het aantal functie aanroepen veel groter zijn dan de veranderingen in
levels, het is dan ook verspilde cpu/io om voor elke functie aanroep
die levels uit een database te halen. Je kan daar wellicht beter het
filesystem (en alle caching die daarom heen zit) voor gebruiken.

Dat kan je eenvoudig abstraheren/centralizeren (en in dat object
evenetueel altijd nog iets uit een database halen (er is geen reden
waarom de losse functies daar weet van hoeven te hebben))