Hallo,
ich möchte gern in meiner Datenbank ein Rollensystem für Zugriffsberechtigungen einführen. Der User bekommt in der tbl_User in der Spalte "Rolle" eine Funktion zugewiesen. Z.B. lautet dies "User" oder "Admin" oder "Verwaltung"...
Nun möchte ich dies Rollen gern Verwalten und verschiedene Berechtigungen anlegen. So soll z.B. die Gruppe "User" nur ihre eigenen Kontakte bearbeiten dürfen. Den Kontakten in der tbl_Kontakte ist daher die UserID in einem Feld zugewiesen.
Öffnet nun ein User einen Kontakt eines anderen zuständigen Mitarbeiters, so soll er das Formular "frm_Kontakte" zwar öffnen können, aber er kann z.B. keine Änderungen vornehmen, den Kontakt nicht löschen usw.
Gibt es eine einfache Möglichkeit, sowas aufzubauen? Bisher habe ich für einzelne Schaltflächen immer via VBA "bei Click" eine Routine gebaut die dann entscheidet ob der User klicken darf oder nicht. Wenn nicht, bekommt er eine Meldung "Keine Berechtigung".
Kann man das zentralisiert irgendwie lösen? Ich stelle mir das so vor dass ich einfach in dem entsprechenden Ereignis eine Prozedur aufrufe (z.B. Call CheckRolle) und diese Prozedur dann prüft, ob für das entsprechende Formular oder die entsprechende Schaltfläche eine Berechtigung vorliegt, und wenn ja welche (lesen / schreiben / löschen - jeweils für eigene Kontakte, Teamkontakte und gesamte Organisation).
Die Verwaltung der Rechte sollte in einem Formular zu lösen sein.
Es müssten sicher zwei Tabellen angelegt werden: 1. tbl_Rolle mit den Namen und tbl_Rollenrechte mit den einzelnen Positionen wie Formularen oder Schaltflächen und deren jeweilige Rechte. Z.b. 0=kein Zugriff, 1=nur lesen, 2= lesen+schreiben 3 = lesen+schreiben+löschen
Wie geht Ihr da so vor?
LG
datekk
Hallo,
Access ist leider für ein Berechtigungs-/Rollensystem total ungeeignet, da die Daten ungeschützt sind.
Imo ist der bessere Weg arbeitsbezogene Frontends zu erstellen.
Gruß Andreas
Hallo,
was man mit "arbeitsbezogenen Frontends" schützen kann, lässt sich auch mit einem Frontend für alle(s) umsetzen.
Möglichkeiten gibt es viele, man kann das bspw. über die Formulareigenschaften lösen und das Löschen Eingeben, Ändern differenziert freischalten, oder den Recordsettyp Snapshot wählen, oder die einzelnen Controls sperren, oder Textfelder ein-/ausblenden...
Du müsstest schon ein konkretes Konzept vorlegen und konkrete Probleme bei der Umsetzung schildern, damit man dir dabei helfen kann.
Und wie will man verhindern dass einfach alle Objekte in eine neue Datenbank importiert werden? Dann hat man einen Zugriff auf alle Forms, Tabellen etc.
Andreas
Wie willst du das denn bei den "arbeitsbezogenen Frontends" verhindern, die Tabellen sind doch sicher (oder hoffentlich) dieselben. Ich hatte nach deinem ersten Satz erwartet, dass du ein alternatives Backend vorschlagen würdest. ;-)
Ja, das mit der Sicherheit in Access ist mir bewusst. Aber diejenigen, die das bei uns nutzen können kaum einen WLan Code eingeben. ;D
Ok.. ich bau mal weiter dran rum.
Danke und LG. :)