Einen wunderschönen guten Morgen
Ich Arbeite gerade der Überarbeitung unserer Benutzerverwaltung.
Ich habe folgenden Tabellen aufbau:
Delphi-Quellcode:
Tabelle Filesystem -->
ID,
DateiNr,
Revision,
Dateiname,
Benutzername.....
View VW_Filesystem
Select * from Filesystem where Benutzername = Current_User;
Tabelle FilesList -->
ID,
DateiNr,
Revision,
Dateiname,
Benutzername
View VW_FileList
Select * from FilesList where Benutzername = Current_User;
in der Tabelle „Filesystem“ kann es innerhalb einer DateiNr viele Revisionen geben.
DateiNr Revision
1 1
1 2
1 3
1 4
2 1
2 2
...
Die View „VW_Filesystem“ soll nur die Daten anzeigen, die der User sehen darf.
In der Tabelle „FileListe“ steht lediglich zu Einer DateiNr die Letzte Revision
DateiNr Revision
1 4
2 2
Die View „VW_FileList“ soll nur die Daten anzeigen, die der User sehen darf.
Der Benutzer soll nur diese Rechte haben:
Filesystem --> nur einfügen
Vw_Filesystem --> Nur Lesen
Filelist --> einfügen, Update
Vw_FileList --> Nur Lesen
Der Hintergrund ist, das der Benutzer ausschließliche seine Daten sehen soll. und garkeines falls die eines anderen Benutzers.
Das ist soweit auch alles kein Problem in funktioniert auch alles.
Jetzt tritt nur ein Problem auf.
Wenn ein Benutzer einen Datensatz in die Tabelle "Filesystem" einfügt soll automatisch
a) ein Datensatz in die Tabelle "FileListe" eingefügt werden wenn dieser noch nicht vorhanden ist
oder
b) die neue RevisionsNr in den vorhandenen Datensatz in der Tabelle "Fileliste" geändert werden.
Das einfügen in die Tabelle "Fileliste" klappt problemlos.
Wenn ich jetzt aber ein
Update Fileliste set Revision = :NeuRevision where Id = :ID;
auf die Tabelle "Fileliste" mache bekomme ich die Fehlermeldung das ich keine Berechtigung zum Lesen habe.
Der Benutzer soll ja auch gar nicht in der Tabelle lesen er soll ja nur schreiben.
Ich habe es auch schon probiert ein Update auf die View zu machen aber hier wird ein Voll-Zugriff auf die Tabelle "Fileliste" benötigt
Gibt es eine Möglichkeit die Tabelle "FileListe" zu ändern OHNE das ich dem Benutzer leserechte geben muss?
mfg
Jens