November 25, 2020, 06:03:54

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Berechtigungen via Windows-AD

Begonnen von tomm85, November 16, 2020, 13:22:27

⏪ vorheriges - nächstes ⏩

tomm85

November 16, 2020, 13:22:27 Letzte Bearbeitung: November 16, 2020, 13:26:52 von tomm85
Hallo zusammen,

meiner Erinnerung, aber auch diesem Post ("Access ist leider für ein Berechtigungs-/Rollensystem total ungeeignet") zufolge, war und ist Access nicht besonders geeignet für Berechtigungen. Ich erinnere mich dunkel, dass es viele Möglichkeiten gab, um versteckte oder ausgeblendete Elemente wieder anzuzeigen und man Tasten-Kombinationen abfangen musste. Usw. ....

Da dieses Thema für mich wieder aktuell wird, habe ich darüber erneut nachgedacht und bin auf folgende, mögliche Lösung gekommen, zu der mich euer Feedback interessiert.

Meine Idee ist, wie im nachfolgenden Bild verdeutlicht, die Backends schlichtweg in unterschiedliche Windows-Ordner zu packen, diese via Windows-Berechtigungen unterschiedlich zu berechtigen und ein zentrales Access-Frontend zu haben, dass für alle zugänglich ist und in welchem die jeweiligen Backends und deren Objekte verknüpft sind. Wenn ein User auf einen Bereich (Formular, Tabelle, Abfrage ...) zugreift, für den er keine Berechtigungen hat, gibt es halt einfach keine Daten :-)

Sie dürfen in diesem Board keine Dateianhänge sehen.

Blöde Idee?

TomKelly

Hallo Tomm85

Ist mE eine gute Idee, machen wir bei uns im Geschäft seit Jahren sehr erfolgreich so.
Wir hatten allerdings die Situation, dass sich Quelldatenbanken auf Servern befinden, welche (für den Benutzer) nicht verfügbar sind. Das führte zu unerträglichen Wartezeiten, da Access auf das Timeout des Systems wartete, welches auch mal eine Minute sein konnte.
Sofern die Datenbanken alle auf dem selben Server sind und nur Ordner gesperrt, sollte das aber kein Problem sein.
Noch ein kleiner Tipp. Es ist für den Benutzer angenehm, wenn er Bereiche / Funktionen nicht wählen kann, die für ihn nicht zur Verfügung stehen. Das lässt sich per VBA sehr elegant lösen:
- Im Formular beim Ereignis "Bei Laden" ein VBA-Makro hinterlegen.
- Für jeden Knopf, der in einen solchen Bereich springen kann, prüfen, ob der Bereich zur Verfügung steht, und abhängig vom Ergebnis entweder Enabled oder Visible schalten. Das sieht dann in etwa so aus:
Knopf.Enabled = (Len(Dir("Pfad zu der Quelldatenbank")) > 0)
Oder eben
Knopf.Visible = ...

Gruss
TomKelly

MzKlMu

Hallo,
Zitatund ein zentrales Access-Frontend zu haben, dass für alle zugänglich ist
das geht nicht. Jeder User braucht in einer Mehrbenutzerumgebung sein eigenes Frontend auf seinem PC.
Gruß
Klaus

TomKelly

Hallo,

Ist zwar Offtopic aber da es angesprochen wurde:
"Eigenes Frontend auf seinem PC" ja und nein. Als Entwickler ist es hilfreich nur EIN Frontend zu bauen. Dieses kann dann beliebig oft verteilt werden. Sinnvoll erscheint mir folgendes Vorgehen für das Frontend:

- In einem "privaten" Ordner befindet sich das Original, welches weiterentwickelt und getestet wird.
- Sobald das Original zufriedenstellend ist, wird es an einen öffentlichen Ort kopiert.
- Wenn der User damit arbeiten will, kopiert er das Frontend vom öffentlichen Ort in ein temporäres Userverzeichnis und startet es dort. (Mit einem Mausklick per Batchdatei.)

Voraussetzung selbstverständlich, dass keinerlei Daten im Frontend sind...
Dieses Vorgehen hat auch den Vorteil, dass das Frontend jederzeit weiterentwickelt werden kann, und nie durch Anwender blockiert ist.

Damit habe ich zwar pro User ein eigenes Frontend, aber doch nur eine Datenbank entwickelt. Machen wir seit Jahren so und ich bin nie mehr blockiert was die Weiterentwicklung und Veröffentlichung der neuen Versionen betrifft.

Gruss
TomKelly

MzKlMu

Hallo,
@TomKelly
das ist natürlich auch OK und entspricht ja im Grunde genommen auch "jedem User sein eigenes Frontend".
Und demzufolge wird auch auf jedem PC Access benötigt, mindestens als Runtime (kostenlos).
Gruß
Klaus