Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird mit Spaltenrechte klappt nicht (https://www.delphipraxis.net/149638-firebird-mit-spaltenrechte-klappt-nicht.html)

Steffen0917 25. Mär 2010 19:56

Datenbank: firebird • Version: 2.1 • Zugriff über: IB Komponenten

Firebird mit Spaltenrechte klappt nicht
 
Hallo zusammen,

ich möchte einem Benutzer mit nur Leserechte an einer tabelle zusätzlich Schreibrecht an einer Spalte geben.
Auf den FAQ-Seiten von firebird finde ich: GRANT UPDATE ON table1(field1) TO USER1 welches aber zu einer Fehlermeldung "token ( unknown" führt.
In einem Interbase Buch finde ich GRANT UPDATE (field1) ON table1 to USER1. Damit kommt es zu keiner Fehlermeldung - aber ich kann trotzdem in field 1 nicht schreiben.

Weiss jemand Rat ?

Gruss, Steffen

Steffen0917 26. Mär 2010 09:38

Re: Firebird mit Spaltenrechte klappt nicht
 
Hallo - hatte denn sonst niemand dieses Problem ?

Lg, Steffen

hoika 26. Mär 2010 12:59

Re: Firebird mit Spaltenrechte klappt nicht
 
Hallo,

nö, aber wir haben Internet ... ;)

Grant


GRANT UPDATE ON table1(field1) TO USER1;


Heiko

Steffen0917 26. Mär 2010 13:45

Re: Firebird mit Spaltenrechte klappt nicht
 
Hallo Heiko,

genau das hab ich ja probiert, aber da gibt es sofort eine Fehlermeldung an der Stelle (

Gruß, Steffen

DelphiBandit 26. Mär 2010 14:09

Re: Firebird mit Spaltenrechte klappt nicht
 
Zitat:

Zitat von hoika
GRANT UPDATE ON table1(field1) TO USER1;

Hier scheint das Internet eine ein wenig falsche Syntax auszuspucken, vielleicht ist dies erst für Folgeversionen gedacht. Mit der V1.5 geht es mit folgender Syntax (entnommen aus dem Syntax-Guide von IBExpert):

Delphi-Quellcode:
grant update(field1, field2) on table1 To USER1;
Ah, wer lesen kann ist klar im Vorteil... die Rechte greifen nicht, trotz korrekter Syntax. Schande über mein Haupt! Werde das auch nochmal probieren :D

Steffen0917 26. Mär 2010 14:26

Re: Firebird mit Spaltenrechte klappt nicht
 
Wenn ich das sooo probiere, gibt es keine Fehlermeldung - und sieht auf den ersten Blick gut aus.
Wenn ich die Rechte der Tabelle mit IBOConsole kontrolliere, hat dann user1 auch Rechte für UPDATE.

Aber leider kann der User1 auch in dem field1 dann nichts ändern beim Zugriff mit IBDataSet

DelphiBandit 26. Mär 2010 14:37

Re: Firebird mit Spaltenrechte klappt nicht
 
Zitat:

Zitat von Steffen0917
Wenn ich das sooo probiere, gibt es keine Fehlermeldung - und sieht auf den ersten Blick gut aus.
Wenn ich die Rechte der Tabelle mit IBOConsole kontrolliere, hat dann user1 auch Rechte für UPDATE.

Aber leider kann der User1 auch in dem field1 dann nichts ändern beim Zugriff mit IBDataSet

Jupp, habs dann auch gelesen :) Ich habe das eben mit einem User-Login ausprobiert. Solange ich dem User keine SELECT-Rechte auf die gesamte Tabelle gebe, klappt gar nichts. GRANT(e) ich ihm oder dem User PUBLIC diese Select-Rechte, dann kann ich mit dem User1-Login an meinen beiden Testfeldern herumändern. Der Versuch andere Felder zu ändern wird mit einer Fehlermeldung quittiert ("This user does not have privilege to perform this operation on this object"). Sollte genau das sein, was Du möchtest - hab es allerdings nicht mit Komponenten getestet, sondern nur in der SQL-Console vom IBExpert.

hoika 27. Mär 2010 08:08

Re: Firebird mit Spaltenrechte klappt nicht
 
Hallo,

Zitat:

Aber leider kann der User1 auch in dem field1 dann nichts ändern beim Zugriff mit IBDataSet
IBDataSet macht nat. ein Select über die Felder, die du dort angibst.

Vielleicht hilft ja auch ein StringGrid.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz