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