ich einen Firebird Benutzer erstellt (PIPPO) über jaybird, folgt gsec „Anzeige“:Firebird Benutzer mit Privilegien nicht Tabellen zugreifen können
GSEC> di user name uid gid admin full name ------------------------------------------------------------------------------------------------ SYSDBA 0 0 Sql Server Administrator PIPPO 0 0 GesAll 1.0 User GSEC>
ich eine Rolle (GESALLDB_USER) in Firebird DB erstellen und einige Privilegien gewährt:
SQL> show grant; /* Grant permissions for this database */ GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON ANELLI TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON COPPIE TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON COVE TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON DATI_CONFIGURAZIONE TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON DATI_COVE TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON DATI_SOGGETTI TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON DEPOSIZIONI TO ROLE GESALLDB_USER GRANT GESALLDB_USER TO PIPPO SQL>
diese Rolle auf den neuen Benutzer über jaybird (letzte Zeile vor) gewährt:
das Problem ist, dass wenn ich versuche, eine Abfrage ich die Nachricht zu laufen bekam:
SQL> select * from anelli; Statement failed, SQLSTATE = 28000 no permission for read/select access to TABLE ANELLI SQL>
Wenn ich dem neu erstellten Benutzer direkt die TABLE gewähre, funktioniert alles.
SQL> grant all on anelli to pippo;
SQL> show grant;
/* Grant permissions for this database */
GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON ANELLI TO ROLE GESALLDB_USER
GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON ANELLI TO USER PIPPO
SQL> connect "C:\Users\teiluke\Documents\Ondulati\DB\prova\gesalldb.fdb" user "p
ippo" password "topolino";
Commit current transaction (y/n)?y
Committing.
Server version:
WI-V2.5.2.26540 Firebird 2.5
WI-V2.5.2.26540 Firebird 2.5/XNet (E7441EA1CA2CF4)/P12
WI-V2.5.2.26540 Firebird 2.5/XNet (E7441EA1CA2CF4)/P12
Database: "C:\Users\teiluke\Documents\Ondulati\DB\prova\gesalldb.fdb", User: pi
ppo
SQL> select * from anelli;
progressivo FEDERAZIONE RNA TIPO ANNO INIZIO FINE ATTIVA LAST_USED
============ =========== ====== ====== ====== ============ ============ ====== =
1 FOI 89LR E 2012 1 100 N
0
2 FOI 89LR E 2013 1 100 S
41
Irgendwelche Hilfe dazu?
Danke Gianluca.
Erledigt als vorgeschlagen dasselbe Ergebnis: 'SQL> verbinden "c: \ Benutzer \ teiluke \ Dokumente \ ondulati \ DB \ prova \ gesalldb.fdb" Benutzer "pippo" Passwort "topolino" Rolle "gesalldb_user"; Serverversion: WI-V2.5.2.26540 Firebird 2.5 Datenbank: "c: \ Benutzer \ teiluke \ Dokumente \ ondulati \ db \ prova \ gesalldb.fdb", Benutzer: pippo, Rolle: gesalldb_user SQL> select * von Anelli; Anweisung fehlgeschlagen, SQLSTATE = 28000 keine Berechtigung zum Lesen/Auswählen von Zugriff auf TABELLE ANELLI SQL> show grant; /* Erteilen Sie Berechtigungen für diese Datenbank */ . . . GRANT GESALLDB_USER TO PIPPO ' –
@ GianlucaPasqualato Seltsam, ich werde versuchen, dies zu reproduzieren und sehen, ob ich etwas verpasst habe. –
@GianlucaPasqualato Ich habe es gerade getestet, und die Rolle ist case sensitive, wenn sie von (einfachen oder doppelten) Anführungszeichen umgeben ist, so dass 'rolle 'gesalldb_user'' nicht funktioniert, aber mit' role' GESALLDB_USER'' oder 'role gesalldb_user' wird funktionieren. –