Firebird konfigurieren

<< Serverversionen und Unterschiede | IBExpert | Download und Installation von InterBase >>

Die deutschsprachige Dokumentation wird seit dem 26. Juli 2016 nicht mehr gepflegt. Aktuelle und vollständige Dokumentation finden Sie auf der englischsprachigen Webseite: IBExpert Documentation


Firebird konfigurieren

Bevor wir uns den zwei Firebird Konfiguartionsdateien zuwenden, möchten wir noch auf die meistgestellte Frage im Bezug auf diese Themen eingehen. "Ich habe die Parameter in der firebird.conf/aliases.conf geändert und nichts passiert!" Die einfache Antwort ist: Entfernen Sie das Rautenzeichen (#)! Es ist das Symbol, das zum Kommentieren verwendet wird.

aliases.conf

Ein Alias ist eine Peudonym für den Datenbankverbindungsstring und Datenbankdateinamen. Der vollständige Verbindungsstring besteht aus dem Servernamen (oder Localhost), gefolgt vom Laufwerk und dem Pfad zur Datenbankdatei, mit der Datenbankdateinamen-Verknüpfung am Ende. So erhält der Client die Info, wohin er seine Datenpakete und Zugriffsdaten für den Server senden muss.

Aus Sicherheitsgründen ist es nicht immer wünschenswert, dass der Client-Benutzer den vollständigen Verbindungsstring sieht und es tauchen deutliche Probleme auf, wenn die Datenbank auf ein anderes Laufwerk oder eine andere Maschine verschoben wird, da jeder Client über den neuen Verbindungsstring informiert werden müsste. Aus diesen Gründen wird es empfohlen, der Datenbank einen Aliasnamen zu geben. Alle Aliasnamen sind in der aliases.conf verzeichnet. Es gibt keine syntaktischen Einschränkungen bei der Benennung von Alias.

Wenn ein Alias verwendet wird, können die Benutzer nicht sehen, wo sich die Datenbank wirklich befindet. Sollte sie verschoben werden, muss der neue Verbindungsstring nur einmal in der aliases.conf geändert werden. Werfen wir einen Blick auf ein Beispiel:

Der Alias db1 soll sich auf den Datenbanknamen db1.fdb beziehen.

 db1=c:\path\db1.fdb

Dieser Benutzeralias wurde für den Datenbankserver festgelegt. Der Client kann so auch eine Alias-Verbindung definieren, wenn er die Datenbank registriert oder nachträglich in der IBExpert Datenbankregistrierungsinfo. Der Verbindungsstring lautet:

 servername:aliasname

Wenn der Benutzer eine Verbindung mit der db1 herstellen will, muss er einfach

 localhost:db1

in das Feld Datenbankalias eingeben. Die aliases.conf-Datei zeigt den Server an, mit dem der Client verbinden möchte.

Wenn Sie mit IBExpert arbeiten, kann ein Datenbankalias beim Registrieren der Datenbank festgelegt werden. Weitere Infos finden Sie unter Datenbank registrieren / Datenbankalias.

Problemlösung XP Windows Systemwiederherstellung

Windows XP hat leider die Tendenz davon auszugehen, dass alle Dateien mit der Dateiendung .GDB Bestandteil der Windows Systemwiederherstellung sein müssen. Das bedeutet, dass wenn Sie Ihre Datei DB1.GDB öffnen, XP (Standardeinstellung) sich zunächst entscheidet, eine Kopie der Datei zu machen (für den Fall, das Sie an einer Stelle einen Restore machen müssen) und Ihnen dann vor Beendigung des Restores keinen Zugriff gewährt. Sie können sich vorstellen, wie lange das dauern kann, wenn Sie eine große Datenbankdatei haben!

Wenn Sie Ihre Datenbankdatei nicht umbenennen wollen, nur um es Microsoft recht zu machen, erzeugen Sie einfach einen Alias:

 C:\db1.gdb = C:\db1.fdb

zurück zum Seitenanfang

firebird.conf

Mögliche Dateispeicherorte sind in der firebird.conf definiert. Der vollständige firebird.conf Parametersatz ist detailliert in der firebird.conf-Datei beschrieben. Der Server muss nach Änderungen in der firebird.conf neu gestartet werden, um diese Änderungen wirksam werden zu lassen. Im Folgenden werden kurz die wichtigsten Parameter beschrieben:

RootDirectory

Wenn Sie mehrere Firebird-Serverinstallationen benutzen, verwenden Sie den RootDirectory-Parameter, um festzulegen, wo der aktive Firebird-Server zu finden ist.

DatabaseAccess

Es muss ein Alias-Eintrag vorhanden sein. Wenn der Pfad hier eingegeben wird, kann die Datenbankdatei nur in diesem Pfad oder seinen Unterverzeichnissen gespeichert werden.

 DatabaseAccess = NONE

bedeutet, dass nur Dateispeicherorte, die in der aliases.conf definiert sind, zur Verfügung stehen. Der Server kann nicht auf andere Einträge zugreifen. Das ist ein großer Sicherheitsaspekt, denn auch wenn jemand einen Benutzernamen auf dem Datenbankserver hat, kann er keine Datenbankdatei erzeugen, weil es nicht möglich ist, einen Alias remote festzulegen.

ExternalFileAccess

Firebird verfügt über einen Mechansismus mit folgendem Befehl, eine Tabelle extern zu erzeugen, (d.h. nicht in der Datenbank):

 create table external file

Um solche externe Dateien zuzulassen, ist es notwendig, den Parameter ExternalFileAccess ausdrücklich zu aktivieren. Die Optionen umfassen: None, Full oder Restrict. Wenn Sie Restrict wählen, erstellen Sie eine ';'-separierte baumstrukturierte Liste, wo die externen Dateien gespeichert werden. Der Standardwert None verhindert die Verwendung von externen Dateien auf Ihrer Seite.

UdfAccess

Benutzerdefinierte Funktionen ? werden in Firebird zur Ergänzung und Erweiterung der Firebird Serversprache verwendet. Dieser Parameter legt fest, wo die UDFs zu finden sind. In der Regel findet man sie im Unterverzeichnis /UDF und dort sollten sie nach Möglichkeit auch bleiben. UdfAccess kann None, Full oder Restrict sein. Wenn Sie Restrict wählen, erstellen Sie eine ';'-separierte baumstrukturierte Liste, wo die UDF-Dateien gespeichert werden.

TempDirectories

Hier können Sie festlegen, wo temporäre Dateien erzeugt werden sollen. Wenn der Firebird Server eine Abfrage empfängt, die ORDER BY oder Ähnliches enthält, ohne einen Index, dann muss Firebird die Daten irgendwo sortieren. Firebird hat einen sogenannten Sortierpuffer, der im Prinzip ein Speicherbereich ist, wo solche Sortierprozesse durchgeführt werden können. Wenn jedoch eine Sortieroperation 10 GB groß ist, muss Firebird diese Operation auch irgendwo durchführen können. Ab einer bestimmten Größe, reicht der Sortierpuffer nicht mehr aus. Dann wird diese Operation in eine temporäre Datei verschoben und Sie können hier festlegen, wo diese temporäre Datei sein soll.

Wegen der starken Hin- und Herbewegung, müssen Sie wissen, wo Ihre temporäre Datei im Verhältnis zur Datenbank steht. Sobald Sie eine temp. Datei brauchen, bedeutet das, Sie haben nicht genügend RAM oder Sie haben die internen Limits überschritten. Die Daten werden aus dem Datenbank-Cache gelesen und ins Temporärverzeichnis gelegt. Daher macht es eine großen Unterschied aus, dies auf separaten Platten zu speichern. Außerdem möchten Sie ja auch wissen, wo sie sind und sehen, wie sie groß sie werden.

Was tun Sie, wenn Ihr Datenbankserver während der Sortierung abstürzt? Die temporären Dateien bleiben einfach da. Wenn Ihr System also hängt, und Sie rebooten müssen, könnten Sie plötzlich eine Menge temporärer Dateien haben. Während der Nutzung der temporären Dateien, haben diese einen temp. Namen. Wenn Sie also die Rechte haben, die Dateien zu löschen oder umzubenennen, so ist das gut, denn ansonsten sind diese Dateien verwaist.

Der Standardwert wird mit FIREBIRD_TMP, TEMP oder TMP in den Optionen der Programmeinstellung bestimmt. Jedes Verzeichnisdatenwort kann optionale Größenargumente haben, um seine Speicherung zu begrenzen. Dieses Argument folgt dem Verzeichnisnamen und muss durch mindestens ein Leerzeichen getrennt werden. Wenn das Größenargument fehlt oder ungültig ist, wird der gesamte verfügbare Platz im Verzeichnis genutzt.

Beispiele

 TempDirectories = c:\temp;d:\temp

oder

 TempDirectories = c:\temp 100000000;d:\temp 500000000;e:\temp

DefaultDbCachePages

Dies beeinflusst den Cache, indem die Anzahl der Seiten in einer Datenbank so hoch gesetzt wird, wie der Cache auf einmal aufnehmen kann. Standardmäßig ordnet der Superserver jeder Datenbank 2048 Seiten zu und der ClassicServer 75 Seiten pro Clientverbindung pro Datenbank. Bevor Sie einen dieser Werte ändern, lesen Sie bitte die Kapitel Seitengröße und Speicherkonfiguration.

Siehe auch:
Firebird 2.5 Release Notes: FileSystemCacheThreshold

RemoteServiceName

Die ist der TCP-Dienstname, der für die Client-Datenbankverbindung verwendet werden soll. Es ist lediglich notwendig, entweder den RemoteServiceName oder den RemoteServicePort zu ändern, nicht beide. Sortierreihenfolge ist der RemoteServiceName (wenn ein Eintrag in der services.-Datei zu finden ist) und dann der RemoteServicePort.

Sie müssen dies nicht ändern, wenn dies Ihre einzige Installation ist.

E.g. RemoteServiceName = gds_db

RemoteServicePort

Dies ist die TCP Portnummer, die für die Client-Datenbankverbindung verwendet wird. Es ist lediglich notwendig, entweder den RemoteServiceName oder den RemoteServicePort zu ändern, nicht beide. Die Sortierreihenfolge ist der RemoteServiceName (wenn ein Eintrag in der services.-Datei zu finden ist) und dann der RemoteServicePort.

Sie müssen dies nicht ändern, wenn dies Ihre einzige Installation ist.

Z.B. RemoteServicePort = 3052

RemoteBindAddress

Ermöglicht die Anbindung der eingehenden Verbindung an die IP-Adresse einer bestimmten Netzwerkkarte. Es aktiviert die Abweisung eingehender Verbindungen durch andere Netzwerk-Interfaces, außer dieser einen. Standardmäßig werden die Verbindungen jedes verfügbaren Netzwerk-Interfaces zugelassen.

Siehe auch:
Firebird 2.5 Release Notes: New configuration parameters and changes

CpuAffinityMask

Dieser Parameter gilt nur für Superserver auf Windows.

In einem SMP (Symmetric Multi-Processing)-System, wird hiermit eingestellt, welcher Prozessor vom Server verwendet werden kann. Der Wert wird von einem Bit-Map genommen, in dem jeder Bit eine CPU darstellt. Daher ist der Wert, um nur den ersten Prozessor zu verwenden, 1. Um CPU 1 und CPU 2 zu verwenden, ist der Wert 3. Um CPU 2 und CPU 3 zu verwenden, ist der Wert 6. Der Standardwert ist 1. Es macht jedoch Sinn, Firebird zu berechtigen, mindestens 2 CPUs zu verwenden, so dass wenn der Datenverkehr zum Halten kommt, wegen beispielsweise einer unkorrekt laufenden Abfrage, der andere Datenverkehr die zweite CPU nutzen kann.

 CpuAffinityMask = 1

Siehe auch:
englischsprachig:
Firebird 2.1 Release Notes: New configuration parameters and changes

security.fdb / security2.fdb

Die Firebird Sicherheitsdatenbank definiert optional einen oder mehrere Benutzernamen, Passwörter, Roles fest, die bei Zugriff auf die Datenbank verwendet werden. PC-Clients müssen immer einen gültigen Benutzernamen und Passwort eingeben. Firebird/InterBase® erkennt nur die ersten 8 Zeichen eines Passworts.

Wenn ein Firebird/InterBase®-Benutzer ISC_USER und ISC_PASSWORD Umgebungsvariablensätze hat und der Benutzer, der durch solche Variabeln definert ist, nicht in der isc4.gdb/security.fdb ist, wird der Benutzer die Fehlermeldung undefined user name and password erhalten, wenn er versucht, die isc4.gdb/security.fdb Benutzer von der lokalen Servermanagerverbindung aus einzusehen. Dies gilt nur für die lokale Verbindung; die vom Servermanager automatisch hergestellte Verbindung überbrückt diese Sicherung.

Wenn eine Datenbank erzeugt wird, dürfen nur die Namen eingegeben werden, die schon in der Server-Sicherheitsdatenbankdatei ISC.GDB, security.fdb oder seit Firebird 2.0 die neue security2.fdb (welche die Serverrechte speichert; Benutzerrechte für Datenbankobjekte werden in der Datenbank selbst gespeichert) vorhanden sind. Die Person, die die Datenbank erzeugt, wird der Datenbankinhaber. Ausschließlich der Datenbankinhaber und der SYSDBA (System Datenbank Administrator) können bestimmte Operationen auf einer Datenbank durchführen (wie z.B. einen Datenbank-Shutdown). Deshalb ist der Datenbankinhaber, wenn er als SYSDBA definiert wurde, die einzige Person, die berechtigt ist diese Operationen durchzuführen.

Beachten Sie: Wenn eine Role mit dem Namen SYSDBA erzeugt wird, hat kein anderer Benutzer (nicht einmal der SYSDBA) Zugriff auf die Datenbank. Deshalb sollten alle Datenbanken von einem anderen User erzeugt werden, so dass mindestens zwei User Änderungen an die Datenbank vornehmen können.

Die Passwörter werden in der Datenbankdatei ISC4.GDB verschlüsselt. Wenn Sie unbedingt den Benutzernamen SYSDBA als Datenbankinhaber behalten wollen, sollten Sie zumindest das Standardpasswort (masterkey) ändern, um wenigsten ein gewisses Maß an Sicherheit zu erreichen! Das Passwort masterkey sollte, nach Erzeugung der Datenbank, schnellstmöglich geändert werden.

Firebird/InterBase® überprüft nur die ersten acht Buchstaben eines Passwortes, auch dann, wenn ein längeres Wort eingegeben wird. Im Fall des Passwortes masterkey wird also nur "masterke" überprüft; alle Buchstaben nach dem achten werden ignoriert.

GSEC ist eine Firebird/InterBase® kommando-Zeilen Tool, um die Serversicherheit zu verwalten. Es kann benutzt werden, um authorizierte User hinzufügen, zu löschen oder zu ändern. GSEC Befehle gelten dem Datenbankserver und nicht einzelnen Datenbanken, wie es bei den meisten anderen Kommando-Zeilen Tools der Fall ist.

Alle GSEC Optionen werden auch in IBExpert im Benutzermanager und Rechtemanager.

Wenn Sie Ihre Sicherheitsdatenbank von security.fdb auf security2.fdb upgraden wollen, weil Firebird 2.0 nur mit der security2.fdb funktioniert, lesen Sie bitte das IBExpert Benutzermanager Kapitel, Dealing with the new security database.

Siehe auch:
deutschsprachig:
Rechtemanager
Serversicherheit ISC4.GDB / SECURITY.FDB
Tabelleneditor / Rechte Seite
Role
englischsprachig:
REVOKE ADMIN OPTION FROM
REVOKE ADMIN OPTION
Active users
Firebird 2.1 Release Notes: Security in Firebird 2.1
Firebird 2.0.4 Release Notes: Security in Firebird 2
Firebird 2 Quick Start Guide: Server configuration and management
GSEC

zurück zum Seitenanfang
<< Serverversionen und Unterschiede | IBExpert | Download und Installation von InterBase >>