Einzelnen Beitrag anzeigen

Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#1

FIrebird Benutzerrechte Update

  Alt 13. Okt 2011, 09:48
Datenbank: FIreBird • Version: 2.1 • Zugriff über: IBX
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
  Mit Zitat antworten Zitat