Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird: Zugriffsproblem über Roles (https://www.delphipraxis.net/64169-firebird-zugriffsproblem-ueber-roles.html)

hsbc 28. Feb 2006 14:10

Datenbank: Firebird • Version: 1.5.3 • Zugriff über: Zeos

Firebird: Zugriffsproblem über Roles
 
Hallo allerseits,

ich habe keine Chance, auf meine Datenbank mit Rollenrechten zuzugreifen. Folgende Situation:

Vorhandene Tabelle KUNDEN
User TEST angelegt (keine Zugriffsrechte definiert)
Role Vertreter angelegt (mit GRANT ALL die Rechte vergeben)
GRANT Vertreter TO TEST

Ich logge mich ein mit:

User: TEST
Role: Vertreter
Passwort: ****

Delphi-Quellcode:
  with DatenModul do begin
    if ZConnection.Connected then ZConnection.Disconnect;
    Edit_User.Text    := Trim(Edit_User.Text);
    Edit_Kennwort.Text := Trim(Edit_Kennwort.Text);
    Edit_Rolle.Text   := Trim(Edit_Rolle.Text);

    ZSQLMonitor.Active := true;
    ZConnection.User    := Edit_User.Text;
    ZConnection.Password := Edit_Kennwort.Text;
    ZConnection.Properties.Clear;
    if Edit_Rolle.Text <> '' then
//      ZConnection.Properties.Values['RoleName'] := Edit_Rolle.Text;
      ZConnection.Properties.Add('Rolename='+QuotedStr('Edit_Rolle.Text'));
    try
      ZConnection.Connect;  // Datenbank connecten
    except
    end;
  end;
Folgende Fehlermeldung kommt:

Zitat:

The user does not have privilege to perform this operation on this object.
The SQL: SELECT * FROM KUNDEN ORDER BY KUNDENNR;
no permission for read/select access to COLUMN ANREDE
Wenn ich jedoch dem User TEST direkt Zugriffsrechte zuordne und mich ohne Role einlogge, funktioniert natürlich alles.
Was mache ich hier falsch ???

mfg
Herbert

marabu 28. Feb 2006 18:41

Re: Firebird: Zugriffsproblem über Roles
 
Hallo Herbert,

bist du sicher, dass du mit 'RoleName' zum Ziel kommst? Ich verwende (IBX) normalerweise 'sql_role_name' als Schlüsselwort.

Grüße vom marabu

hsbc 28. Feb 2006 19:06

Re: Firebird: Zugriffsproblem über Roles
 
Hallo marabu,

ich habe jetzt auch deinen Vorschlag probiert, leider das selbe Ergebnis.

Das Problem bei mir ist nicht ZEOS, sonder Firebird selbst. Wenn ich mich nämlich mit dem EMS SQL Manager 2005 unter Verwendung von Roles einloggen möchte, so funktioniert dies hier auch nicht. Normales Einloggen ohne Roles funktioniert hingegen.

Entweder mache ich da etwas falsch oder ich weiss auch nicht ...

Ist es richtig, dass man sich bei Verwendung von Roles mit dem gleichen Usernamen bzw. Passwort, als wie ohne Roles einloggen muss, nur halt als dritten Parameter die Roles angeben muss.

Wenn das nicht alles schon mal gegangen wäre... Leider musste ich meinen PC komplett neu aufsetzen, jetzt bringe ich die Roles nicht mehr hin. Was kann da in Firebird falsch sein. Ich habe Firebird 1.5.3 als Service gestartet, funktioniert ja ansonsten auch alles - nur dir Rollen...

Vielleicht kann mir doch noch jemand auf die Sprünge helfen.

mfg
Herbert

dataspider 28. Feb 2006 20:41

Re: Firebird: Zugriffsproblem über Roles
 
Hi,

Hast du die ROLE Vertreter auch mit Gross- und Kleinschreibung angelegt oder nur Gross (VERTRETER)?
Ich würde dann erst mal eine neue Role nur UpperCase anlegen.
Denn QuotedString (wie in deinem Beispiel) wird nicht funktionieren, da IMHO Firebird nur doppelte Hochkommas akzeptiert.

Dann mal evtll. IBExpert einsetzen und prüfen, ob User tatsächlich der Role angehört.

Cu, Frank

hsbc 1. Mär 2006 06:36

Re: Firebird: Zugriffsproblem über Roles
 
Hallo dataspider,

danke, das war des Rätsels Lösung, die Gross-/Kleinschreibung.

Ich hatte die Rolle "Vertreter" genannt und das mag scheinbar Firebird nicht (sehr komisch).
Als ich sie dann auf "VERTRETER" neu angelegt hatte, ging alles einwandfrei.
Verwenden kann man sie dann wieder sowohl in Klein-, Gross- und auch gemischter Schreibweise.
Muss man wissen, steht aber nirgends geschrieben, also

Rollen in Firebird NUR IN GROSS-SCHREIBWEISE definieren !!!


Vielen Dank für deine Hilfe.

mfg
Herbert

dataspider 1. Mär 2006 08:44

Re: Firebird: Zugriffsproblem über Roles
 
Zitat:

Zitat von hsbc
Rollen in Firebird NUR IN GROSS-SCHREIBWEISE definieren !!!

Nicht nur Roles, auch Tabellen- Feld- SP- und Viewnamen, eben alle Bezeichner bei Metadaten.
SQL-Code:
select name, vorname from mitarbeiter...
ist auch besser zu lesen als:
SQL-Code:
select "Name", "Vorname" from "Mitarbeiter"...
Cu, Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 Uhr.

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