MS ACCESS Berechtigungen - Wie umsetzen?

  • Hi Leute! Folgendes Problem/Aufgabenstellung:
    Es geht darum eine Multiuser-DB aufzubauen, mit unterschiedlichen Berechtigungen.

    Im Groben soll es eine Tabelle geben, die sämtliche Personendaten enthält:
    Ganz einfaches Beispiel:

    Tabelle: Persondata
    - Name
    - Adresse
    - Country
    ---------------

    Es geht jetzt darum, dass Personen aus jew. Ländern auch nur die Datensätze ihrer Landsleute sehen und bearbeiten dürfen. Ich dachte mir ich setze das mit Abfragen und dem hauseigenen Access-Berechtigungssystem um:

    Also Beispiel:
    Gruppe DE_users anlegen.
    Gruppe AT_users anlegen.
    Gruppe ALL_users anlegen (die dürfen alle Datensätze sehen).

    Für die DE und AT Gruppen die Ansicht der Persondata-Tabelle sperren, da dort ja alle Datensätze enthalten sind und nicht von allen gesehen werden dürfen. Nun dachte ich mir, ich verwende als jeweilige Datenquelle eine Abfrage a'la:

    Für DE_users: getPersonData_DE: SELECT * FROM persondata WHERE country = 'DE'
    analog für die Österreicher: getPersonData_AT: SELECT * FROM persondata WHERE country = 'AT'

    Jetzt die Abfrage getPersonData_DE für die DE_users berechtigen und
    die Abfrage getPersonData_AT für die AT_users berechtigen.

    GEHT SO ABER LEIDER NICHT :(
    Da die zugrundeliegende Tabelle Persondata für die 2 Gruppen zum Öffnen/Bearbeiten gesperrt ist,
    kann ich auch leider die Abfragen darauf nicht ausführen, bzw. dürfen die Abfragen auch nichts von der Tabelle lesen.

    Wie kann ich so ein Berechtigungssystem am besten umsetzen?
    Also Quasi Views für versch. Benutzergruppen einrichten.

    Was ich vermeiden will, ist, die Personentabelle zusätzlich in mehrere Tabellen splitten zu müssen (Also 1 mit allen Personendaten, 1 mit nur den DE_userdaten, eine mit nur den AT_userdaten).
    Das ist dann eine (gefährliche) Spielerei, alle Daten in den AT/DE-Tabellen konsistent mit der ganzen Persondata-Tabelle zu halten.

    Ist klar was ich meine?
    Bitte um Ideen ;)

    mfg AntiBit

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  • Ok, hab schon rausgefunden wie ich das am besten mach, ohne splitten zu müssen.

    Für all jene die's interessiert:
    Access-Berechtigungssystem aktivieren, Datenbankfenster von Haus aus ausblenden und die SHIFT-Taste beim Startup mittels Makro deaktivieren.
    So kann ich alle Berechtigungen über das GUI steuern, ohne Angst haben zu müssen, dass jemand einfach so die DB-Tabellen öffnet.

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!