Mai 09, 2021, 21:39:01

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

Beaker s.a.

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
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

tomm85

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 :-) )

tomm85

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.

tomm85

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 :-/

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

MzKlMu

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.
Gruß
Klaus

tomm85

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).

tomm85

... 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)

Beaker s.a.

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
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.