Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie auf Firebird Datenbank im Netzwerk zugreifen? (https://www.delphipraxis.net/73824-wie-auf-firebird-datenbank-im-netzwerk-zugreifen.html)

BlueStarHH 24. Jul 2006 15:15

Datenbank: Firebird 1.5 • Zugriff über: TIBTable, TIBDatabase, IBX

Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Hallo,

ich habe einen Server-PC mit dem Namem AMD1800, auf dem meine Firebirddatenbankdatei in D:\Austausch\xyz.fdb liegt. Dieses Verzeichnis ist mit Schreib- und Leserechten mit dem Freigabenamen "Austausch" freigegeben. Auf dem Server-PC habe ich Firebird komplett installiert (Firebird-1.5.3.4870-0-Win32.exe, SuperServer und Client).

Auf meinem Client PC habe ich eine Delphi-Anwendung. Im Verzeichnis dieser Anwendung liegt die gds23.dll die ich dorthin vom Server aus dem Verzeichnis C:\Programme\Firebird\Firebird_1_5\bin kopiert habe. Auf dem Server heißt die Datei noch fbclient.dll. Da die Delphikomponenten jedoch die gds23.dll erwarten, habe ich die Datei umbenannt. In der TIBDatabase ist unter Databasename AMD800:D:\austausch\QTN.FDB eingetragen. SYSDBA und MASTERKEY sind als user_name und password eingetragen.

Wenn ich nun Connected auf true setzen möchte erscheint folgende Meldung:

Zitat:

Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Wenn ich stattdessen als Databasename AMD800:austausch\QTN.FDB eintrage kommt die Meldung "Das System kann den angegeben Pfad nicht finden".

Was ist zu tun damit es funktioniert? Mit dem Tool "IB Expert" und den selben Einstellungen habe ich das selbe Problem, falls ich mit dem Tool zur Datenbank verbinden möchte.

Auf dem einem zweiten Client-PC hab ich dann auch nochmal Firebird komplett installiert inkl. Server. Dort erscheint auch obige Fehlermeldung und er verbindet sich nicht mit der Datenbank auf dem Server-PC.

mkinzler 24. Jul 2006 15:22

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Connectionstring müßte AMD1800:D:\Austausch\xyz.fdb heißen.

Gruber_Hans_12345 24. Jul 2006 15:23

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
hast du masterkey eh alles klein geschrieben (beim passwort wird darauf geachtet)

Jelly 24. Jul 2006 15:24

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Probier mal die IP Adresse anstatt den NetBios Namen des Servers.

BlueStarHH 24. Jul 2006 15:31

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Zitat:

Zitat von Gruber_Hans_12345
hast du masterkey eh alles klein geschrieben (beim passwort wird darauf geachtet)

Das Passwort ist MASTERKEY. Wenn ich die Datenbank mit der Embedded-Version von Firbird lokal nutze, kann ich mich auch damit einloggen.

BlueStarHH 24. Jul 2006 15:32

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Zitat:

Zitat von Jelly
Probier mal die IP Adresse anstatt den NetBios Namen des Servers.

Die IP zu verwenden hilft leider auch nicht.

BlueStarHH 24. Jul 2006 15:35

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Zitat:

Zitat von mkinzler
Connectionstring müßte AMD1800:D:\Austausch\xyz.fdb heißen.

Man muss also den kompletten Pfad, wo sich die Datenbankdatei auf dem Server befindet, angeben? Muss Laufwerk D auch noch freigegeben werden? Das wäre ja Quatsch, wenn die User nur auf das Verzeichnis Austausch zugrifen sollen.

Der Freigabename ist ja "Austausch". Wenn ich mit dem Explorer von Windows auf die Datenbankdatei zugrifen möchte, muss ich \\AMD1800\Austausch\xyz.fdb eingeben.

hanspeter 24. Jul 2006 15:36

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Ist auf dem Client ein Firewall aktiv?
Windows Firewall blockiert Firebird.
Ich verwende als Connet immer die IP Adresse. Sollte wohl schneller sein.
192.168.11.10:d:\...
Geuß Peter

mkinzler 24. Jul 2006 15:36

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Zitat:

Zitat von BlueStarHH
Zitat:

Zitat von Gruber_Hans_12345
hast du masterkey eh alles klein geschrieben (beim passwort wird darauf geachtet)

Das Passwort ist MASTERKEY. Wenn ich die Datenbank mit der Embedded-Version von Firbird lokal nutz, kann ich mich auch damit einloggen.

Die embedded Version ignoriert das Passwort ja auch. Normalerweise ist das Paasswot masterkey

Lemmy 24. Jul 2006 15:38

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Hi,

beim Connection-String muss der Pfad zu Datenbank aus der Sicht des SERVERS angegeben werden! Ein Share auf das DB-Verzeichnis einzurichten ist nicht notwendig (um nicht zu sagen falsch!).

Wenn Du nicht den kompletten Pfad im Connection-String stehen haben willst, dann verwende Aliase (alias.conf im Firebird-Server Verzeichnis).

Grüße
Lemmy

Jelly 24. Jul 2006 15:39

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Nein, Du musst den Dateinamen aus Serversicht angeben. Eine Freigabe ist dafür nicht erforderlich. Wenn der Firebird Dienst wie normal unter dem SYSTEM Konto läuft, so braucht das Server Systemkonto Schreibzugriff auf die .fdb Datei, und sonst eigentlich niemand, zumindest kein Benutzer im Netz. Sonst wäre das ganze Sicherheitskonzept der DB Programmierung ja hinfällig. Man kopiere sich die .fdb Datei einfach mal lokal auf den Client, und greift dort mit einer lokale Firebird Server Version mit Vollzgriff darauf zu... Deshalb... niemals das DB Verzeichnis freigeben.

edit: War zu langsam, und noch obendrauf die gleich Aussage :wall:

BlueStarHH 24. Jul 2006 15:45

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Ich danke euch allen!
Die Lösung: Nachdem ich masterkey klein geschrieben hatte, klappte es. Wie von mkinzler bemerkt ist mir das nicht aufgefallen, weil die Embedded-Version das (falsche) Passwort ignoriert.

Vielen Dank auch für den Hinweis darauf, dass das Verzeichnis mit der Datenbankdatei nicht freigegeben werden sollte. Ich stelle gerade von BDE+Paradox auf Firebird um. Bei Paradox musste man immer freigehen, daher bin ich auf diese "dumme" Idee gekommen.

Nochmals vielen Dank an alle!

hoika 24. Jul 2006 17:21

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Ich würde auf jeden Fall die Datenbank unter einem anderen User als Sysdba laufen lassen.
Falls auf dem Rechner schon ein Firebird-Programm läuft,
hat der Admin vielleicht das Sysdba-Passwort geändert.

Am einfachsten geht das über Backup/Restore.

dbpfad ist dein Connection-String.
backuppfad xxx\data.fbk

Backup:
gbak -b %dbpfad% %backuppfad% -user sysdba -pass masterkey

Restore
gbak -c %backuppfad% %dbpfad% -user heiko -pass geheim


gbak ist im Bin des Firebird zu finden.
Ich packe das meistens in die PATH-Variable ein.


Heiko

BlueStarHH 25. Jul 2006 11:20

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Zitat:

Zitat von hoika
Restore
gbak -c %backuppfad% %dbpfad% -user heiko -pass geheim

Das Backup hat geklappt. Wenn ich zur Wiederherstellung jedoch diese Zeile ausführe, erscheint folgende Fehlermeldung:

Zitat:

Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Muss ich irgendwo erst so einen Benutzeraccount anlegen? Wenn ja wo?

mkinzler 25. Jul 2006 11:24

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Userverwaltung läuft über das gsec Utility

hoika 25. Jul 2006 11:35

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Hallo #,

naja, Heiko als Username sollte schon definiert ein ;)
Ich empfehle ibexpert dafür.
Es gibt ne personal, die fast nicht eingeschränkt ist.
Zur Not kann man auch die ibconsole von Jeff Overcash nehmen.

Heiko

mkinzler 25. Jul 2006 11:36

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Zitat:

Es gibt ne personal, die fast nicht eingeschränkt ist.
Nur die beherrscht halt keine Benutzerverwaltung :-( [edit]Benutzer kann mann anlegen, aber keine Rechte definieren.[/edit]

hoika 25. Jul 2006 12:08

Re: Wie auf Firebird Datenbank im Netzwerk zugreifen?
 
Tatsache !

Ist mir noch nie aufgefallen ;)

Ich arbeite immer mit einem Standarduser,
weil mein Programm eine eigene Nutzerverwaltugn besitzt.

Dann kann man den EMS SQL Manager (Lite) benutzen
http://sqlmanager.net/products/ibfb/manager/
Der hat einen Grant-Manager.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 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