Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: tomm85 am November 16, 2020, 13:22:27

Titel: Berechtigungen via Windows-AD
Beitrag von: tomm85 am November 16, 2020, 13:22:27
Hallo zusammen,

meiner Erinnerung, aber auch diesem Post  (https://www.access-o-mania.de/forum/index.php?topic=21252.0)("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 :-)

2020-11-16 access berechtigungen.PNG

Blöde Idee?
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: TomKelly am November 24, 2020, 14:11:05
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
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: MzKlMu am November 24, 2020, 14:15:44
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.
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: TomKelly am November 24, 2020, 14:38:57
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
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: MzKlMu am November 24, 2020, 19:53:02
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).
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: Beaker s.a. am November 25, 2020, 18:07:57
Hallo,
Und wie funktioniert das mit den Beziehungen bei getrennten BEs?
Die Tabellen in den gezeigten Bereichen müssen doch eben solche
haben. Ich meine z.B. Vertrieb und Buchhaltung ohne Personal (FK
Mitarbeiter) macht doch keinen Sinn. Und da wird es noch so einige
Beziehungen zwischen den BEs geben.

gruss ekkehard
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: tomm85 am Dezember 29, 2020, 16:20:51
Zitat von: MzKlMu am November 24, 2020, 14:15:44Hallo,
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.

Stimmt. Ich weiß, was Du meinst...
Ich habe mich unglücklich ausgedrückt. Besser: "Die Backends so, wie in meiner Frage und die FE's am besten jeder eines Lokal" ... wenn sich dann Dinge am FE verändert haben, hatte ich immer das BE-Passwort geändert und so konnte ich sicherstellen, dass keiner mehr mit dem alten FE arbeitet.

Danke (auch, wenn sehr spät :-) )
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: tomm85 am Dezember 29, 2020, 16:22:52
Zitat von: Beaker s.a. am November 25, 2020, 18:07:57Hallo,
Und wie funktioniert das mit den Beziehungen bei getrennten BEs?
Die Tabellen in den gezeigten Bereichen müssen doch eben solche
haben. Ich meine z.B. Vertrieb und Buchhaltung ohne Personal (FK
Mitarbeiter) macht doch keinen Sinn. Und da wird es noch so einige
Beziehungen zwischen den BEs geben.

gruss ekkehard

Das ist natürlich ein berechtigter Einwand. Du spielst damit auf die ref. Intigrität an, oder? Das wäre zu testen, ob das mit "verknüpften Tabellen" geht.

Danke für Dein Feedback.
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: tomm85 am Dezember 29, 2020, 16:43:15
Zitat von: tomm85 am Dezember 29, 2020, 16:22:52Du spielst damit auf die ref. Intigrität an, oder? Das wäre zu testen, ob das mit "verknüpften Tabellen" geht.

Also: Man kann die Tabellen verknüpfen, aber wie man sieht, ist die Funktion der ref Int. ausgegraut und nicht wählbar :-/

2020-12-29 linked tables - ref int.PNG
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: MzKlMu am Dezember 29, 2020, 16:58:56
Hallo,
Beziehungen können nur im Backend angelegt werden.
Im Frontend sind das Verknüpfungen (wie in Abfragen), die lassen die Einstellung von RI nicht zu.
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: tomm85 am Dezember 29, 2020, 17:13:21
ja, genau. und von BE zu BE wird demnach auch nicht gehen (da es ja aus Access-Sicht keine wirkliche Unterscheidung zw. FE und BE gibt).
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: tomm85 am Dezember 29, 2020, 17:15:06
... um präzise zu sein dürfte es wohl heißen: "...Beziehungen können nur zwischen Tabellen* direkt erstellt werden" (*also auch keine verknüpften Tabellen, sondern nur dort, wo sie wirklich liegen ... und somit nur innerhalb einer Access-Datei)
Titel: Re: Berechtigungen via Windows-AD
Beitrag von: Beaker s.a. am Dezember 30, 2020, 12:11:06
Hallo Tom,
Ja, so ist es.
Warum denkt ihr nicht über eine Umstellung auf ein echtes DBMS
(SQL-Server) nach? Da hast du dann auch keine Probleme mehr mit
Berechtigungen.

gruss ekkehard