Hallo Forum,
ich habe folgendes Problem:
Ich greife mit 2 Windows10-PCs auf mehrere Datenbanken zu, die auf einem RaspberryPi liegen. Installiert ist der Firebird-Server 3.0. Inzqischen ist es mir zumindest gelungen, von den beiden Windows-PCs mit dem User SYSDBA auf die datenbanken zuzugreifen. Wenn ich z.B. mit FlameRobin neue User anlege (es sind nur 2 User), so wird immer der zugriff abgewiesen, obohl ich sie um Usermanager von Flamerobin und auch nach aufruf von GSEC sehen kann.
Früher hatte ich den Firebird 2.5 verwendet und damit hatte ich keine Probleme (wahrscheinlich weil die security2.fdb gepflegt wurde). Mit Firebird 3.0 hat sich das Berechtigungskonzept wohl stark geändert und hier hänge ich jetzt fest.
Ich habe mal die firebird.conf gepackt angehangen.
Hat jemand eine Idee?
Viele Grüße,
echtet
Nur Zugriff mit sYSDBA möglich
Moderator: martin.koeditz
- Dateianhänge
-
- firebird.conf.zip
- (10.81 KiB) 1485-mal heruntergeladen
Hi,
Wenn der Zugriff über sysdba funktioniert. hat es ja nichts mit der firebird.conf zu tun, sondern eher, dass die Benutzer nicht die Berechtigung haben, um auf die Datenbanken/Tabellen zuzugreifen. In Flamerobin kann man den Benutzern unter "Usermanager" die jeweiligen Rechte zuweisen - Zugriff auf die Datenbank/Tabellen/Views/Stored Procs/ ...
Wenn der Zugriff über sysdba funktioniert. hat es ja nichts mit der firebird.conf zu tun, sondern eher, dass die Benutzer nicht die Berechtigung haben, um auf die Datenbanken/Tabellen zuzugreifen. In Flamerobin kann man den Benutzern unter "Usermanager" die jeweiligen Rechte zuweisen - Zugriff auf die Datenbank/Tabellen/Views/Stored Procs/ ...
- martin.koeditz
- Beiträge: 500
- Registriert: Sa 31. Mär 2018, 14:35
Hi,
ab Firebird 3 werden Benutzerberechtigungen komplett in SQL getätigt.
Hilfreich ist das Quickstart Guide ab Seite 14.
https://firebirdsql.org/file/documentat ... kStart.pdf
Die Syntax für den Benutzerbefehl ist
Und hier noch ein paar Beispiele aus der Doku:
Nach Anlage der Benutzer können die Rechte wie gehabt vergeben werden:
Bitte beachte auch, dass jede DB nun eine eigene Security-DB nutzen kann. Dies wird in databases.conf festgelegt.
Gruß
Martin
ab Firebird 3 werden Benutzerberechtigungen komplett in SQL getätigt.
Hilfreich ist das Quickstart Guide ab Seite 14.
https://firebirdsql.org/file/documentat ... kStart.pdf
Die Syntax für den Benutzerbefehl ist
Code: Alles auswählen
CREATE USER name PASSWORD 'password' [<options>] [<tags>];
[CREATE OR] ALTER USER name [SET] [PASSWORD 'password'] [<options>] [<tags>];
ALTER CURRENT USER [SET] [PASSWORD 'password'] [<options>] [<tags>];
DROP USER name;
<options> ::= <option> [, <option> ...]<option> ::= {FIRSTNAME | MIDDLENAME | LASTNAME} 'stringvalue'
| ACTIVE
| INACTIVE
<tags> ::= TAGS (<tag> [, <tag> ...])
<tag> ::= tagname = 'stringvalue'
| DROP tagname
Und hier noch ein paar Beispiele aus der Doku:
Code: Alles auswählen
create user dubya password 'Xwha007_noma' firstname 'GW' lastname 'Shrubbery';
create user lorna password 'Mayday_domaka' tags (Street = 'Main Street', Number = '888');
alter user benny tags (shoesize = '8', hair = 'blond', drop weight);
alter current user set password 'SomethingEvenMoreSecretThanThis';
alter user dubya set inactive;drop user ted;
Code: Alles auswählen
GRANT SELECT, INSERT ON TABLE SALES TO USER ALEX;
Gruß
Martin
Martin Köditz
SynDesk SW GmbH
SynDesk SW GmbH
Hallo Martin Hallo andi,
Danke für die Antworten. Ich kann nun lokal auf dem RaspberryPi entwder per ISQL oder mit FlameRobin mit dem angelegten Testuser auf die Datenbanken zugreifen (also quasi lokal). Wenn ich allerdings von den besagten Windows-PCs aus zugreife, funktioniert es nicht, von dort weiterhin nur mit SYSDBA.
Müsste vielleicht doch noch in der firebird.conf etwas angepasst werden?
Bin momentan etwas ratlos...
Viele Grüße,
echtet
Danke für die Antworten. Ich kann nun lokal auf dem RaspberryPi entwder per ISQL oder mit FlameRobin mit dem angelegten Testuser auf die Datenbanken zugreifen (also quasi lokal). Wenn ich allerdings von den besagten Windows-PCs aus zugreife, funktioniert es nicht, von dort weiterhin nur mit SYSDBA.
Müsste vielleicht doch noch in der firebird.conf etwas angepasst werden?
Bin momentan etwas ratlos...
Viele Grüße,
echtet
- martin.koeditz
- Beiträge: 500
- Registriert: Sa 31. Mär 2018, 14:35
Hallo echtet,
welche Fehlermeldung erhältst du beim Zugriff? Ich kann mir nur vorstellen, dass das falsche Authentifizierungsplugin genutzt wird.
Gruß
Martin
welche Fehlermeldung erhältst du beim Zugriff? Ich kann mir nur vorstellen, dass das falsche Authentifizierungsplugin genutzt wird.
Gruß
Martin
Martin Köditz
SynDesk SW GmbH
SynDesk SW GmbH
Hallo Martin,
ja, meine Vermutung geht auch in diese Richtung. Wenn ich z.B. mit IBEXPERT versuche auf eine Datenbank zuzugreifen, kommt folgende Fehlermeldung:
>>
Unsuccessful execution caused by a System error that precludes successful execution of subsequent statements. Vour user name and password are not defined. Ask your database administrator to set up a Firebird login.
<<
Angelegt habe ich den Testuser PAUL mit dem ISQL-Tool lokal auf dem Raspberry mit dem Befehl:
CREATE USER PAUL PASSWORD test
Im Usermanager von Flamerobin ist der User sichtbar und ich kann mich auch (lokal) als PAUL anmelden.
Aus irgendeinem Grund werden die Anmeldeinformationen von den Windows-PCs wohl nicht an den RaspberryPi durchgereicht.
Ich kann jetzt nochmal versuchen, die Einträge zum AUTHSERVER bzw. AUTHCLIENT in der firebird.conf zu variieren, aber das ist eigentlich ein "Stochern im Nebel".
Nachtrag:
Habe mit " select SEC$USER_NAME, SEC$PLUGIN from sec$users;" folgendes Ergebnis erhalten:
SEC$USER_NAME SEC$PLUGIN
=============================== ===============================
SYSDBA Srp
THIXXX Srp
ANXXXXX Srp
PAUL Srp
SYSDBA Legacy_UserManager
Wie kann ich denn einem User das Legacy-Plugin zuordnen?
Nachtrag:
Nachdem ich nun in der firebird.conf folgenden Eintrag geändert habe:
UserManager = Legacy_UserManager
funktioniert es.
Ich musste zwar meine beiden user neu anlegen, aber nun funktioniert auch der Zugriff von den beiden Windows-PCs aus.
Ein großer Dank an Martin, der mich auf die richtige Fährte gebracht hat!!!
Was mich noch etwas irritiert ist, wenn ich wieder den ISQL-Befehl eingebe "select SEC$USER_NAME, SEC$PLUGIN from sec$users;" bekomme ich das Ergebnis:
SEC$USER_NAME SEC$PLUGIN
=============================== ===============================
SYSDBA Legacy_UserManager
PETER Legacy_UserManager
Mein Testuser "Peter" ist zwar noch da, meine beiden User ThiXX und AngXXX werden aber nicht gelistet, obwohl sie funktionieren.
Viele Grüße,
echtet
ja, meine Vermutung geht auch in diese Richtung. Wenn ich z.B. mit IBEXPERT versuche auf eine Datenbank zuzugreifen, kommt folgende Fehlermeldung:
>>
Unsuccessful execution caused by a System error that precludes successful execution of subsequent statements. Vour user name and password are not defined. Ask your database administrator to set up a Firebird login.
<<
Angelegt habe ich den Testuser PAUL mit dem ISQL-Tool lokal auf dem Raspberry mit dem Befehl:
CREATE USER PAUL PASSWORD test
Im Usermanager von Flamerobin ist der User sichtbar und ich kann mich auch (lokal) als PAUL anmelden.
Aus irgendeinem Grund werden die Anmeldeinformationen von den Windows-PCs wohl nicht an den RaspberryPi durchgereicht.
Ich kann jetzt nochmal versuchen, die Einträge zum AUTHSERVER bzw. AUTHCLIENT in der firebird.conf zu variieren, aber das ist eigentlich ein "Stochern im Nebel".
Nachtrag:
Habe mit " select SEC$USER_NAME, SEC$PLUGIN from sec$users;" folgendes Ergebnis erhalten:
SEC$USER_NAME SEC$PLUGIN
=============================== ===============================
SYSDBA Srp
THIXXX Srp
ANXXXXX Srp
PAUL Srp
SYSDBA Legacy_UserManager
Wie kann ich denn einem User das Legacy-Plugin zuordnen?
Nachtrag:
Nachdem ich nun in der firebird.conf folgenden Eintrag geändert habe:
UserManager = Legacy_UserManager
funktioniert es.

Ein großer Dank an Martin, der mich auf die richtige Fährte gebracht hat!!!
Was mich noch etwas irritiert ist, wenn ich wieder den ISQL-Befehl eingebe "select SEC$USER_NAME, SEC$PLUGIN from sec$users;" bekomme ich das Ergebnis:
SEC$USER_NAME SEC$PLUGIN
=============================== ===============================
SYSDBA Legacy_UserManager
PETER Legacy_UserManager
Mein Testuser "Peter" ist zwar noch da, meine beiden User ThiXX und AngXXX werden aber nicht gelistet, obwohl sie funktionieren.
Viele Grüße,
echtet
- martin.koeditz
- Beiträge: 500
- Registriert: Sa 31. Mär 2018, 14:35
Hallo echtet,
bitte poste mal den Inhalt deiner firebird.conf. Insbesondere die Parameter AuthServer, AuthClient und UserManager sind interessant.
Probiere mal folgende Konfiguration aus (Firebird-Dienst danach neustarten:
Gruß
Martin
bitte poste mal den Inhalt deiner firebird.conf. Insbesondere die Parameter AuthServer, AuthClient und UserManager sind interessant.
Probiere mal folgende Konfiguration aus (Firebird-Dienst danach neustarten:
Code: Alles auswählen
AuthServer = Legacy_Auth, Win_Sspi
AuthClient = Legacy_Auth, Srp, Win_Sspi #Windows clients
UserManager = Legacy_UserManager
Martin
Martin Köditz
SynDesk SW GmbH
SynDesk SW GmbH
Hallo Martin,
Wunderbar! Das war es!
Wenn ich jetzt den Befehl aufrufe: select SEC$USER_NAME, SEC$PLUGIN from sec$users
erhalte ich folgende Ausgabe:
SEC$USER_NAME SEC$PLUGIN
=============================== ===============================
SYSDBA Legacy_UserManager
THIXXX Legacy_UserManager
ANXXXX Legacy_UserManager
und die Zugriffe funktionieren von den beiden Windows-PCs aus.
Falls jemand ähnliche Probleme hat, habe ich nochmal meine aktuelle firebird.conv angehangen.
Viele Grüße,
echtet
Wunderbar! Das war es!

Wenn ich jetzt den Befehl aufrufe: select SEC$USER_NAME, SEC$PLUGIN from sec$users
erhalte ich folgende Ausgabe:
SEC$USER_NAME SEC$PLUGIN
=============================== ===============================
SYSDBA Legacy_UserManager
THIXXX Legacy_UserManager
ANXXXX Legacy_UserManager
und die Zugriffe funktionieren von den beiden Windows-PCs aus.
Falls jemand ähnliche Probleme hat, habe ich nochmal meine aktuelle firebird.conv angehangen.
Viele Grüße,
echtet
- Dateianhänge
-
- firebird.conv.zip
- (10.84 KiB) 1448-mal heruntergeladen