Spørgsmålet om brugerstyring er - som du ser - noget som optager mange, og som der er mange bud på en løsning af.
Jeg har en større database, som nu kører i 3. version. Det har givet mig lidt erfaringer med, hvad der virker:
1. version - udviklet i 1997 - var uden brugerstyring.
Resultatet var/er, at løsningen så vidt jeg ved stadig anvendes i den virksomhed den blev leveret til - og i 5-10 andre! (Min efterfølger i admin-jobbet havde ikke helt samme beskyttertrang overfor min kildekode, som jeg selv havde ;-))
2. version - fra 1999 - fik en relativt simpel styring, som låser både FE og BE, og har en liste med brugere med forskellige rettigheder. I BE er gemt et licensnummer, og hver gang databasen startes, foretages en beregning på nummeret. En del af beregningen giver en udløbsdato for licensnummeret, og er den overskredet beder databsen om et nyt nummer. Jeg bliver så kontaktet, og sætter mig med kuglerammen og beregner et nyt nummer med en given løbetid.
Dette gav styr på, at en given lokation havde ret til at bruge databasen. Men ikke hvor mange brugere, som kunne bruge den.
Og af praktiske hensyn (manuel beregning mv.) har licensnumrene ret lang løbetid - typisk et års tid. Hvilket giver problemer, hvis kunden f.eks. ikke betaler. Jeg er altså tvunget til at vælge mellem at holde hårdt på betaling før adgang - eller risikere at kunderne kan bruge databasen et år gratis.
I 3. version - fra 2005 - er licensnummeret flyttet fra databasen til brugeren. Samtidig har jeg lavet en mere kompleks beregning på nummeret, som bla. indregner brugernavnet. Jeg har også lavet en automatisk licensnummergenerator. Desuden har jeg lavet en funktion, som ved opstart forespørger på et ftp-sted, om der er en ny licensfil, og så selv opdaterer denne. Kun hvis der i en periode inden licensens udløb ikke har været webadgang, bliver brugeren besværet med en advarsel om licensens snarlige udløb.
Jeg har nu styr på, præcist hvilke brugere som er oprettet, og hvor lang tid de må bruge databasen. Kunden kan selv oprette brugere på forskellige niveauer, og har databasen internetadgang styres licenserne automatisk. Er der ikke adgang, skal brugeren inden første brug og ved licensudløb kontakte mig.
løsningen giver samtidig mulighed for at tilbagetrække retten til brug af databasen for en eller alle brugere (hvis databasen har internetadgang). Jeg lægger så blot en ny licensfil - som er udløbet - ud til brugeren.
Der er ikke meget egentligt svar i dette, men det giver forhåbentligt lidt inspiration.
For at hjælpe lidt, kan jeg "afsløre" ideen bag licensnummeret i 2. version: nummeret kan f.eks. være på 18 cifre. De første fire skal kunne deles med 6. De næste ti skal deles med 1432 og giver så udløbsdatoen i formatet ddmmåååå. Og endelig skal de sidste fire cifre være større en 8200.
Dette nummer er "simpelt" at generere og rimeligt kompliceret at aflure. forudsat naturligvis, at ingen kan se den kode som beregner det ;-)
Men det er der også råd for:
http://www.eksperten.dk/spm/175783God fornøjelse ;-)