Jeg har en database applikation, der kører på en server.
Selve databasen er en DB4, til hvilken jeg benytter en database engine kaldet Topaz (kan varmt anbefales til mindre databaser (50-100K poster!), er et købeprogram, enginen integreres fuldt i den færdige exefil, ingen problemer med at fedte med BDE eller lign.).
Imidlertid er det nødvendigt for mig at vide hvilke rettigheder brugerne har til det bibliotek databasen ligger i før den åbnes, og da der skal være forskellige niveauer af brugere, vil de have forskellige rettigheder.
Jeg vil ikke lade programmet styre rettigheder, da en bruger jo så kan \"gå bagom\" med en treidie parts database, og brugerene skal heller ikke bøvle med at vide det.
Endvidere så ved jeg ikke på forhånd om data vil ligge på en NT eller en Novell server, så jeg kan ikke benytte serverspecifikke kommandoer.
Så kogt ned, er det noget med at lave et check under opstart:
Må jeg læse Må jeg skrive Må jeg oprette Må jeg slette
Du kan bruge API kald til at finde den pågældende brugers rettigheder, men du kan selvfølgeligt også lave en lille rutine der checker om brugeren kan læse en fil, og hvis, derefter om brugeren kan oprette en (skab en temp fil) og check at den efterfølgende findes. Hvis det virker prøv at skrive i den (oprette og skrive er nu det samme så skrive burde ikke være nødvendigt hvis du kan oprette). Enbdeligt kan du prøve at slette den igen, og checke at den virkeligt er væk.
Ulempen ved denne lille, simple funktion, er at der bliver oprettet en masse filer og hvis brugeren godt kan oprett men ikke slette vil der være en række filer der aldrig forsvinder.
Men.. Jeg tror nu nok at du kun behøver at checke for læse/skrive. Hvis du kan skrive kan du givetvis også slette.
Selvfølgeligt er API kaldene det mest korrekte og den vej du burde gå, men hvis det er for besværligt kan du bruge denne \"hjemmelavede\" mulighed.
Jeg vil nu gå en tand videre og istedet anbefale InterBase ver. 6 frem for Topaz. Jeg vil til hver en tid anbefale en ægte SQL database, hvor der er langt bedre muligheder for at styre brugernes rettigheder med GRANT\'s, Views, Stored Procedures, triggers etc. etc.
Interbase 6 er gratis, både til server og client, og fylder ærlig talt meget lidt.
Æhh Sjensen, kan du gi et hint om hvor jeg kan finde noget beskrivelse af how to do, mht. API kaldene?
Mht. Interbase er alle argumenterne rigtige nok, men af andre grunde, så er den konkrete base lavet som dBase. Endvidere er der en kæmpe fordel, nemlig at ALT ligger i exe filen, dvs. programmer skal bare kopieres ned i biblioteket, lissom i de gode gamle DOS dage!
Christian
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.