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