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

Forum für Fragen rund um die Installation, Konfiguration und Inbetriebnahme von Firebird.

Moderator: martin.koeditz

Antworten
Martin
Beiträge: 24
Registriert: Mo 31. Jan 2022, 09:45

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
Martin
Beiträge: 24
Registriert: Mo 31. Jan 2022, 09:45

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:
bfuerchau
Beiträge: 603
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

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.
Martin
Beiträge: 24
Registriert: Mo 31. Jan 2022, 09:45

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
bfuerchau
Beiträge: 603
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

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.
Martin
Beiträge: 24
Registriert: Mo 31. Jan 2022, 09:45

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
Martin
Beiträge: 24
Registriert: Mo 31. Jan 2022, 09:45

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.
Antworten