Announcement

Collapse
No announcement yet.

no permission for read/select access to Table RDB$Character_Sets

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • no permission for read/select access to Table RDB$Character_Sets

    Hallo,
    ich bekomme neuerdings einen EIBCError in Module IBDAC160.bpl at 0001c2d4:
    no permission for read/select access to Table RDB$Character_Sets.
    Ich nutze Delphi XE2 (win32) mit Firebird Server 2.5
    Rolf

    P.S. IBDac ist ok, der Fehler solte in Firebird liegen.

  • #2
    Originally posted by rolf912 View Post
    P.S. IBDac ist ok, der Fehler solte in Firebird liegen.
    Nicht zwangsläufig, denn die Meldung besagt nichts anderes als fehlende Rechte für die Bearbeitung einer Tabelle. Denselben Fehler erhielt ich mehrfach, nachdem ich eine Datenbank einfach via Copy & Paste dupliziert hatte, um daraus eine neuere Version zu machen. Nachdem ich einige Tabellen eingefügt und diese im Delphi-Programm (ebenfalls mit IbDac, jedoch mit D2009) getestet hatte, erhielt ich diesen Fehler, wenn ich auf ältere Tabellen zugreifen wollte. Der Hintergrund: Ich hatte der neuen Version eine neue Benutzer-Passwort-Kombination verpaßt und konnte mit diesem Benutzer eben nur jene Tabellen bearbeiten, die ich mit diesem Benutzer auch angelegt hatte. Abhilfe schuf ein Backup-Restore-Zyklus, wobei ich beim Restore die neue Benutzer-Passwort-Kombination angegeben habe. Inzwischen habe ich mir außer bei reinen Sicherheitskopien angewöhnt, grundsätzlich nur noch mit Backup&Restore zu arbeiten.

    Siehe z.B. auch: firebird user with granted privileges cannot access tables

    Einen anderen Fall gab es vor 1 1/2 Jahren in der Entwicklerecke, wo ein Trusted-Authentication-Zugriff (also ohne Passworteingabe) denselben Fehler erzeugte, wie ich nach dem Studium des Logfiles herausfinden konnte:

    Dann hab ich mir jetzt mal das Logfile angeschaut, das du hier gepostet hast. Dort steht u.a.: params="trusted_auth.
    Das bedeutet, daß die Authentifizierung nicht über Username/Passwort geschieht, sondern über den jeweiligen Windows-User, also bei dir:
    TFDConnection.Params.OSAuthent = True
    Das heißt dann, daß der Windows-User, der auf Rechner 1, wo die DB problemlos geöffnet werden kann, auf Rechner 2 nicht existiert. Mit ziemlich hoher Wahrscheinlichkeit hat die Trusted Authentication Vorrang vor der Authentifizierung via Username und Passwort, weshalb deine DB auf Rechner 1 mit dem Usernamen des Windows-Users erstellt wird und nicht mit der von dir in den Konstanten angegebenen Username-Passwort-Kombination. Deshalb funktioniert das auch auf anderen Rechnern nicht. Dieses Parameter-Property steht defaultmäßig auf false. Offenbar hast du das auf true gestellt, ohne zu wissen, was du da genau machst. Wenn du das nun änderst, müßte es eigentlich gehen.


    In deinem Fall greifst du auf eine Systemtabelle zu, wofür womöglich ein Admin-Passwort notwendig wäre. Das weiß ich aber nicht genau, weil sich mir noch nie die Notwendigkeit stellte, mit den Systemtabellen zu arbeiten.

    Google liefert selbstverständlich noch viele weitere Suchergebnisse.
    Die Tränen, die du nicht weinen willst, müssen andere für dich vergießen. (Frei nach: wer nicht leiden will, muß hassen.)

    Comment


    • #3
      Backup / Restore hilft.

      Danke!

      Comment

      Working...
      X