Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   IBExpert Rechte auf von System erzeugte Generatoren (https://www.delphipraxis.net/216945-ibexpert-rechte-auf-von-system-erzeugte-generatoren.html)

dataspider 27. Mär 2025 09:07

Datenbank: Firebird • Version: 3.0.10 • Zugriff über: IBExpert

IBExpert Rechte auf von System erzeugte Generatoren
 
Ich bekomme folgende Fehlermeldung von einem Benutzer:

no permission for USAGE access to GENERATOR RDB$45

Dieser Generator gehört zu einer neuen Tabelle und wurde als GENERATED BY DEFAULT AS IDENTITY erzeugt.

In den Rechten gibt es eine Role, welcher alle normalen Benutzer zugeordnet sind.
Die Role hat alle normalen Rechte.

Ich kann mich erinnern, dass in IBExpert bei der Anzeige der Rechte diese Generatoren mit RDB$ auch mal angezeigt wurden.
Auch wurden in IBExpert, soweit ich mich erinnere, bei Erzeugung der Rechte diese automatischen Generatoren berücksichtigt.

Jetzt scheint das nicht mehr zu funktionieren.
Ich kann auch nicht mehr einstellen, dass er vom System erzeugte Generatoren anzeigen soll.

Wie setzt man denn jetzt die Rechte für Generatoren richtig?


Frank Reim

Nachtrag:
Ich lass mir die Rechte auf die Deneratoren anzeigen: select * from rdb$user_privileges t where t.rdb$relation_name like 'RDB$%' and t.rdb$object_type = 14
Alle Generatoren haben haben nur 1 Eintrag zum Nutzer SYSDBA.
Der Fehler tritt erst jetzt auf -:?

IBExpert 27. Mär 2025 18:45

AW: IBExpert Rechte auf von System erzeugte Generatoren
 
frage: wie hast du das erzeugt? wenn per sql`warum sollte ibexpert dann irgendwas machen, was du nicht per sql
so vorbestimmst. Auch firebird hat keinen Grund dafür iregndwelche grants automatisch zu setzen, wäre aber
ein einfaches per database trigger oder zB per sp, die du nach jeder metadatenänderung aufrufst und die dann
mit select ... from rdb$generators into ... do execute statement 'grant .... on ... to public' machst

im grant manager zeigen wir die bisher nicht an, wenn erforderlich könnten wir das zeit mal auch machen,
aber ich hab eh die angewohneit, das bei mir weniger zentrale generatoren über alle tabellen unique
values vergibt, wo man bei replikation auf den nodes immer nur einen generator auf einen höheren offset
setzen muss und nicht dutzende werte irgendwie synchron halten muss.

dataspider 28. Mär 2025 14:56

AW: IBExpert Rechte auf von System erzeugte Generatoren
 
Zitat:

Zitat von IBExpert (Beitrag 1547558)
frage: wie hast du das erzeugt?

Ich erzeuge die Tabellen etc. mit den entsprechenden Editoren in IBExpert.
Und ja, du hast Recht. Es macht (eigentlich) keinen Sinn, den Generatoren spezielle Rechte zuzuweisen.
Bei mir war es so, dass die Zugriffskomponenten den Generator über Systemtabellen ermittelt und verwendet haben.
Da gibt es eine Function ReturningClauseSupported, welch bei mir Fasle zurückgibt (Firebird 3).
Aber das muss ich mir noch genauer ansehen.
Bei IBDac gibt es diese Probleme z.B. nicht.
Da also die Komponente den Wert des Generators im Code gesetzt hat, brauchte es Rechte vom Nutzer bzw. der Role.

Erkannt habe ich das Problem erst, nachdem ich ein Insert auf die Tabelle mit SQL in IBExpert fehlerfrei ausführen können, aber die Anwendung fehlende Rechte bemängelte.

Zitat:

Zitat von IBExpert (Beitrag 1547558)
im grant manager zeigen wir die bisher nicht an, wenn erforderlich könnten wir das zeit mal auch machen

Ich habe mir eine Procedure geschrieben, die fehlende Rechte für alle Generatoren erzeugen kann.
Aber in den Einstellungen DBExplorer: "Zeige von System erstellte Generatoren" sicher hilfreich, aber nicht zwingend notwendig.


Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 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-2025 by Thomas Breitkreuz