Sikkerhed i Access database med flere brugere
Hej eksperter.Jeg har lavet en database (i Access 2003), som er tiltænkt at skulle bruges af flere brugere på én gang.
Jeg har følgende ønsker til databasen:
a) Den skal kunne bruges af flere brugere på én gang
b) De forskellige brugere skal have forskellige rettigheder
c) Nem - dvs. central opsætning af brugere, dvs. brugergrupper (såsom gæst og administrator), og ingen krav om speciel opsætning hos hver enkelt bruger. Standard bruger vil kunne logge ind som "gaest", mens administratorer har personlige logins.
d) Jeg ønsker databasen delt i front-end og back-end, så der kan laves udvikling på front-enden uden at påvirke back-enden.
e) Det må ikke være muligt for brugerne at rette i databasen (akkurat som hvis databasen er gemt som en .mde-fil)
f) Jeg ønsker kun en instans af databasen, dvs. jeg ønsker ikke, at distribuere front-enden i kopier til alle brugerne.
Jeg har forsøgt at løse ovenstående punkter, men er stødt på en del problemer.
Punkt a) og b) har jeg forsøgt løst på følgende måde. Brugerne har forskellige rettigheder: brugere og administratorer. Jeg har selv lavet en login-form, som ved login matcher med en tabel indeholdende brugernavne, adgangskoder og rettighedsniveau. Alt efter hvilket rettighedsniveau brugeren har, gives der adgang til forskellige forme og funktioner. Ved at gemme databasen som en .mde fil sikrer jeg mig, at det for brugerne ikke er muligt at se tabeller, rette i kode, forms og så videre. Metoden jeg har benyttet er, at når en bruger logges på, skrives en tabel indeholdende brugernavnet og rettighedsniveauet, og forskellige steder i koden spørges til indholdet af denne tabel. Problemet er nu, at hvis flere brugere logger på databasen på én gang, vil tabellen blive overskredet (af den sidste bruger der logger sig på), og pludselig er en administrator blevet til almindelig bruger, eller det omvendte - som er meget værre - at en bruger pludselig får administratorettigheder. Dette vil man kunne undgå ved at distribuere en front-end database til alle brugerne, hvor tabellen bliver lokal hos hver bruger. Dette ønsker jeg dog ikke i henhold til f), da opdatering og videreudvikling besværliggøres, da databasen skal distribueres på ny (og hver gang der er foretaget ændringer). Spørgsmålet er så: hvad sker der, når flere brugere åbner den samme database på én gang? De må hver især åbne lokale versioner af forms mv. - Er det rent faktisk tilfældet, og kan man i givet fald via disse lokale versioner skrive rettighedsniveau mv. som eksempelvis en usynlig label, eller er der andre muligheder?
Punkt c) nævner jeg fordi jeg ikke ønsker at bruge Access' indbyggende sikkerhedsfunktioner, da de, som jeg har forstået det, kræver en direkte opsætning hos den enkelte bruger af databasen (opsætning af .mdw-filer mv., som det eller glimrende er beskrevet i denne artikel http://www.eksperten.dk/artikler/314 af Thomas Jepsen)
Punkterne d) og e) ønsker jeg at kombinere - er det muligt at splitte en mde-database i en front-end og en back-end database, således, at der ikke er adgang til at ændre i nogle af databaserne?
Jeg hører meget gerne fra andre, som - om muligt - har stået i samme situation som mig.
Kære eksperter - jeg ser frem til jeres svar. På forhånd tusind tak.