Seite 1 von 2

Firebird 4.0 "Your user name and password are not defiend."

Verfasst: Fr 7. Nov 2025, 14:10
von Martin
Hallo zusammen,

ich kriege gerade mal wieder nen Vogel - vor Kurzem hat noch alles geklappt - und jetzt wieder nicht. :oops: :oops: :oops:

Ich erhalte beim Zugriff auf eine Firebird V4.0 Datenbank die Meldung "Your user name and password are not defiend. Ask your database administrator to set up a Firebird login".

So sieht meine Testumgebung aus:

Ein Netzwerk mit einem Windows 7 x64bit Rechner und ein Windows 10 x64bit Rechner.
Auf dem Windows 7 x64 Rechner ist die Datenbank mit dem Namen "TEST.FDB"
Weiterhin läuft auf diesem Rechner der Firebird Server Dienst - gestartet über die "install_service.bat".
In dem Verzeichnis von Firebird 4.0 auf dem Windows 7 Rechner liegt auch die "security4.fdb"

Auf dem Windows 10 x64bit Rechner schreibe ich ein Programm um auf die Datenbank auf dem Windows 7 Rechner zuzugreifen.
Ich probiere es ztunächst mal mit der Minimal Version. So sieht der Quellcode aus:

Code: Alles auswählen

using System;
using System.Collections.Generic;
using System.Diagnostics;
using FirebirdSql.Data.FirebirdClient;

namespace ns_firebird_server
{
  internal class Program
  {
    static void Main(string[] args)
    {
      FbConnectionStringBuilder connectionStringBuilder = new FbConnectionStringBuilder();

      //Z270 ist der Windows 7 Rechner mit der IP 192.168.0.30

      connectionStringBuilder.Database = @"\\Z270\netzwerk_z270\austausch\z270\fb_40_db\TEST.FDB";
      connectionStringBuilder.ServerType = FbServerType.Default;
      connectionStringBuilder.ClientLibrary = string.Empty;
      connectionStringBuilder.DataSource = "192.168.0.30";
      connectionStringBuilder.Port = 3050;
      connectionStringBuilder.UserID = "SYSDBA";
      connectionStringBuilder.Password = "masterkey";
      connectionStringBuilder.Role = "ADMIN";

      string connection_string = connectionStringBuilder.ToString();

      using(FbConnection  fbConnection = new FbConnection(connection_string))
      {
        try
        {
          fbConnection.Open();
          fbConnection.Close();
          FbConnection.ClearPool(fbConnection);
          FbConnection.ClearAllPools();
        }
        catch(Exception ex)
        { Debug.Print(ex.Message); }
      }
    }
  }
}
Ich habe inzwischen soviel verstanden dass ich bei Verwendung von .net4.8
zusätzlich zu dem FirebirdSql.Data.FirebirdClient 10.3.2.0
noch diese beiden Bibliotheken brauche
- System.Threading.Tasks.Extensions -Version 4.6.3
- System.Runtime.CompilerServices.Unsafe -Version 6.1.2

Wenn ich mich lokal auf dem Windows 7 rechner einlogge kann
ich zB problemos über eine "Embedded" Verbindung auf die Datenbank zugreifen.

Wer kann mir weiterhelfen.
Ich dreh hier schon langsam durch - immer wieder die gleiche Sch... mit nem Netzwerkzugriff.

Viele Grüße

Martin

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: Fr 7. Nov 2025, 15:07
von Martin
So, ich glaub ich habe es gefunden ...

Mea culpa ... ich habe noch mal in alten Beiträgen gesucht - hatte ich wohl übersehen.
Sorry!

An dieser Stelle nochmals vielen Dank on "bfuerchau" und "jhoehne"!!!

Der erste Hinweis:
In der "Firebird.conf" den Wert "RemoteFileOpenAbility" auf "1" setzen.

Der zweite Hinweis:
Ganz genau die Anleitung aus der Dokumentation "README.security_database.txt" aus dem Unterverzeichnis "doc"
der Firebird Software lesen und ausführen.
Also über "isql" mit der gewünschten Datenbank verbinden und einen User anlegen.

Und siehe da ...

Und diesmal schreibe ich mir alles an einem Ort zusammen auf, an dem ich es jederzeit wiederfinde.
Versprochen!!! ;)

Vielen Dank noch mal

Martin

PS die nächste Hürde ist ein "Nicht Windows Server" :cry:

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: Fr 7. Nov 2025, 15:56
von bfuerchau
Das mt RemoteFileOpenAbility solltest du noch mal überlegen, denn das kann häufiger zum Datenbank-Absturz führen und ist auch nicht besonders performant.
"Network stack can still change order of writes so you may get a corrupted database in case of network errors or power outage.
The useful and safe case is working with a shared database marked read-only."

Wobei eine shared DB ja nur bei embedded benötigt werden könnte, ansonsten sollte man die Server-Version nutzen und dann die DB lokal und via Port auch den Server Remote erreichbar machen (Firewallfreigabe).

Du kannst den FB-Client auch als nuget-Package installieren, dann werden die Zusatz-Libs automatisch mit installiert.

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: Sa 8. Nov 2025, 09:38
von Martin
Hallo bfuerchau,

wie Du weißt bin ich nicht unbedingt der Netzwerkprofi.

Frage 1
Wobei eine shared DB ja nur bei embedded benötigt werden könnte, ansonsten sollte man die Server-Version nutzen und dann die DB lokal und via Port auch den Server Remote erreichbar machen (Firewallfreigabe).
Das verstehe ich nicht. Könntest Du mir bitte etwas genauer erkläeren - für Leute mit nicht so viel Netzwerk Kenntnissen.
So wie ich es gelernt habe, liegt die Datenbank auf einem Server auf dem auch der Firebird Server Dienst laufen muss um Zugriff zu bekommen.

Frage 2
Mein Test mit .net4.8 und firebirdsql.data.firebirdclient 10.3.2 funktioniert einwandfrei.
Aus Kompatibilitätsgründen würde ich gern mit .net 4.6.1 und firebirdsql.data.firebirdclient 7.10.1.0 arbeiten.
Das funktioniert aber nicht.
Funktioniert das grundsätzlich nicht oder was kann ich tun, damit diese Kombination funktioniert?

Vielen Dank

Martin

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: Sa 8. Nov 2025, 10:21
von bfuerchau
Zu 1:
Dienst und DB müssen auf demselben Server sein, aber die DB sollte nicht über NAS/Netzlaufwerk laufen.

Zu 2:
Du solltest schon mindestens auf 4.7 gehen, was auch von Windows7 und 8 unterstützt wird.
Net 4.8 ist bei mir auf Win8 nicht installierbar, möglicherweise auf Win7 dann auch nicht.

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: Sa 8. Nov 2025, 21:18
von Martin
Vielen Dank für die Infos, bfuerchau.

Ich muss die Frage noch mal aufrollen.

Datenbank und Dienst laufen auf dem selben Server.

Ich bin umgestiegen auf .net 4.7.2 und FirebirdSql 10.3.2.

Soweit so gut und der Datenbankzugriff funktioniert auch.
Aber nur weil ich die Variable "RemoteFileOpenAbility" in der "firebird.conf" auf 1 gesetzt habe.

Nun bin ich mehrfach davor "gewarnt" worden, die Variable "RemoteFileOpenAbility" in der "firebird.conf" auf 1 zu setzen.
Die Begründung dafür kann ich auch verstehen und nachvollziehen.

Aber ohne bekomme ich keinen Datenbankzugriff.
Es kommt ständig die Meldung
"Your user name and password are not defined. Ask your administrator to set up a Firebird login."

Ich habe mit einem lokalen Tool auf dem Server die Datenbank kontrolliert.
Der User ist registriert.
Zu Testzwecken verwende ich den SYSDBA und das bekannte Passwort.
Nix! Kein Zugriff.

Ich verzweifele hier langsam. Kann mir jemand weiterhelfen?
Ich habe auch schon etliche Internet Seiten durchgearbeitet. Nix funktioniert.

Vielen Dank

Martin

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: Sa 8. Nov 2025, 21:24
von Martin
bfuerchau hat geschrieben: Sa 8. Nov 2025, 10:21 Zu 1:
Dienst und DB müssen auf demselben Server sein, aber die DB sollte nicht über NAS/Netzlaufwerk laufen.

Zu 2:
Du solltest schon mindestens auf 4.7 gehen, was auch von Windows7 und 8 unterstützt wird.
Net 4.8 ist bei mir auf Win8 nicht installierbar, möglicherweise auf Win7 dann auch nicht.
Hallo bfuerchau,

ja - kann ich bestätigen. Ich habe es auch ausprobiert.
Während der Installation sieht es zwar so aus als ob sich .net4.8 auf Windows 7 installieren läßt.
Aber bei einer Kontrolle der höchsten installierten .net Version war max .net 4.7.2 möglich.
Visual Studio bietet beim Anlegen eines Projektes auf Windows 7 auch max .net 4.7.2 an.

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: So 9. Nov 2025, 01:04
von vr2
Hallo Martin,

Seit Firebird 3 sind Useraccounts plugin-spezifisch. Je nachdem, welches Plugin Du benutzt, brauchst Du dort auch einen Account. Wenn Deine Verbindung steht, frag mal das hier ab:

Code: Alles auswählen

select * from sec$users
Die letzte Spalte sec$plugin sagt Dir, bei welchem Plugin Du den/die Accounts angelegt hast.

Stell erstmal sicher, dass Du auf dem Server connecten kannst. Kopier bspw einen Flamerobin dorthin, registriere in Flamerobin den Server als

Display name: testserver
Hostname: localhost
Port number: 3050

In Deiner databases.conf gib der test.fdb einen Alias, zb testdb. Dann registrierst Du die DB in Flamerobin

Display name: testdb
Database path: testdb
Username: <dein username>
Password: <dein password>

Dann connectest Du mit Flamerobin zur Datenbank. Wenn das auf dem Server klappt, kannst Du Dich wieder deiner Anwendung widmen. Dann weißt Du, dass Du dort falsch connectest. Durch den DB-Alias wird Dein connect-String einfacher. Mir kommt besonders die erste Zeile komisch vor, ich kenne aber die .net-Vorgaben nicht.

Normalerweise connectest Du zu einem entfernten Server mit <host>/<port>:<dbalias>

Code: Alles auswählen

connectionStringBuilder.Database = @"\\Z270\netzwerk_z270\austausch\z270\fb_40_db\TEST.FDB";
das könnte jetzt so sein, host wird ja weiter unten in DataSource angegeben (seltsame Bezeichung für host) und Port auch:

connectionStringBuilder.Database = "testdb"

auch dass die Anwendung die fbclient nicht nennt, könnte Schwierigkeiten bereiten, evtl wird die falsche genommen.
connectionStringBuilder.ClientLibrary = string.Empty;
connectionStringBuilder.DataSource = "192.168.0.30";
connectionStringBuilder.Port = 3050;

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: So 9. Nov 2025, 12:25
von Martin
Hallo vr2,

vielen Dank für Deine ausführliche Antwort.

Also - ich bzw Firebird verwendet das Plugin "Srp".

Der Zugriff auf die Datenbank direkt auf dem Server klappt einwandfrei.
D.h. auf dem Server den Server Dienst gestartet und dann mit meinem Minimal Test Programm den Zugriff getestet.
Funktioniert!
Auch ohne Angabe Client Library.
Das ist meiner Meinung nach die Minimal Konfiguration um auf dem Server bei laufendem Firebird Server Dienst
auf die Datenbank zugreifen zu können. Und so funktioniert es auch.
FbConnectionStringBuilder connectionStringBuilder = new FbConnectionStringBuilder();
connectionStringBuilder.Database = @"F:\netzwerk_z270\austausch\z270\fb_40_db\TEST.FDB";
connectionStringBuilder.ServerType = FbServerType.Default;
connectionStringBuilder.ClientLibrary = string.Empty;
connectionStringBuilder.DataSource = "localhost";
connectionStringBuilder.Port = 3050;
connectionStringBuilder.UserID = "SYSDBA";
connectionStringBuilder.Password = "masterkey";
connectionStringBuilder.Role = "ADMIN";
Wenn ich nun das Ganze auf dem Windows 10 Client mit dieser Konfiguration ausführe
klappt es nicht
FbConnectionStringBuilder connectionStringBuilder = new FbConnectionStringBuilder();
connectionStringBuilder.Database = @"\\Z270\netzwerk_z270\austausch\z270\fb_40_db\TEST.FDB";
connectionStringBuilder.ServerType = FbServerType.Default;
connectionStringBuilder.ClientLibrary = string.Empty;
connectionStringBuilder.DataSource = "Z270"; //oder "192.168.0.30"
connectionStringBuilder.Port = 3050;
connectionStringBuilder.UserID = "SYSDBA";
connectionStringBuilder.Password = "masterkey";
connectionStringBuilder.Role = "ADMIN";
Die Angabe einer ClientLibrary führt hier auch nicht zum Erfolg.

Unter Windows 10 Server und Windows 10 Client erhalte ich die Fehlermeldung
"unavailable database"

... so - während des Schreibens hab ich ja nebenbei noch alles Mögliche und Unmögliche Probiert
... und habe es geschafft! HURRA!!! Unfassbar!!!

Die Lösung:
Diese Angabe für die Datenbank:
connectionStringBuilder.Database = "Z270:F:\\netzwerk_z270\\austausch\\z270\fb_40_db\\TEST.FDB";
Das war's!!!
Also: [Name oder IP des Host] : [Das absolute lokale Verzeichnis auf dem Server]
Also "F:" ist der Laufwerksbuchstabe auf dem Server.

Das war mir bisher so nicht bewusst!

Also vielen Dank nochmal an alle und vielleicht hilft das ja dem einen oder anderen auch weiter.

Ich wünsche Euch noch ein schönes Wochenende

Martin

Re: Firebird 4.0 "Your user name and password are not defiend."

Verfasst: So 9. Nov 2025, 12:43
von bfuerchau
Gut, dass du es selber gesehen hast:
Database: Der Name der Datenbank aus Sicht des Servers!

Verständlicher wird es dann, wenn man in den Firebird-Configs mit Alias arbeitet, da man dann als Database den Alias-Namen angibt.
Beim MS-SQL-Server ist das ja auch nicht anders. Man verbindet mit dem Namen der DB, wo der Server die dann hinlegt, kann mir als Client doch egal sein.

Da dies eine grundsätzliche Information ist, die so schon seit Firebird 1.5 festgelegt ist, habe ich das als Grundwissen vorausgesetzt :lol: .

Jetzt erklärt sich auch der Parameter "RemoteFileOpenAbility", da du vom Client aus eine UNC-Datenbank, also ein Netzlaufwerk, auf machen willst, was eben diesen Parameter voraussetzt.
"Database = @"\\Z270\netzwerk_z270\austausch\z270\fb_40_db\TEST.FDB";"
Andererseits deutet deine Konfiguration auch darauf hin, dass der Pfad zur Datenbank via Netzfreigabe erreichbar scheint, zumindest innerhalb deines Netzes.
Bei DB's gibst eine goldene Regel:
Eine Datenbank darf aus Clientsicht nie native erreichbar sein!
Somit kann jeder sich die Datei einfach kopieren.
Es besteht auch überhaupt kein Grund dafür. Für Backups muss der Sever schon selber sorgen.

By the way:
Is "F:" wirklich ein lokales Laufwerk?