Diese Seite wurde maschinell übersetzt. Lesen Sie das englische Original. English

IBSurgeon-Bibliothek

So stellen Sie eine Verbindung zu Firebird 3 wie bei 2.5 mit eingebetteter Verbindungszeichenfolge her

Wie Sie wissen, wenn Sie in der Verbindungszeichenfolge nur den Pfad zur Datenbank angeben (ohne localhost oder Servername oder xnet), verbindet sich Firebird 3 als eingebetteter Server mit der Datenbank:

Code
C:\HQbird\Firebird30>isql -user SYSDBA d:\30test.fdb
Database: d:\30test.fdb, User: SYSDBA
SQL> set list on;
SQL> select MON$remote_protocol, mon$remote_process, mon$user from mon$attachments where mon$attachment_id=current_connection;

MON$REMOTE_PROTOCOL             <null>
MON$REMOTE_PROCESS              <null>
MON$USER                        SYSDBA

Wie Sie sehen können, führt Firebird bei einer eingebetteten Verbindung keine Authentifizierung durch - das Passwort fehlt, und MON$REMOTE_PROTOCOL ist null.

Wenn Sie sich als XNET-Benutzer mit Authentifizierung mit der lokalen Datenbank verbinden möchten, ist der Standardweg, XNET als Protokoll anzugeben.

Code
C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey xnet://d:\30test.fdb
Database: xnet://d:\30test.fdb, User: SYSDBA
SQL> set list on;
SQL> select MON$remote_protocol, mon$remote_process, mon$user from mon$attachments where mon$attachment_id=current_connection;

MON$REMOTE_PROTOCOL             XNET
MON$REMOTE_PROCESS              C:\HQbird\Firebird30.sql.EXE
MON$USER                        SYSDBA        

Es ist jedoch möglich, eingebettete Verbindungen zu “verbieten”, wenn Sie die Reihenfolge der Provider in firebird.conf wie folgt ändern:

Code
Providers = Loopback, Engine12,  Remote

In diesem Fall ist eine Verbindung ohne Passwort als eingebetteter Server nicht mehr möglich, da Firebird XNET verwenden wird.

Code
C:\HQbird\Firebird30>isql -user SYSDBA  d:\30test.fdb
Statement failed, SQLSTATE = 28000
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Use CONNECT or CREATE DATABASE to specify a database
SQL>

Bei einer Verbindung mit Benutzername und Passwort wird die Verbindung wie in Firebird 2.5 als XNET hergestellt.

Code
C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey d:\30test.fdb
Database: d:\30test.fdb, User: SYSDBA
SQL> set list on;
SQL> select MON$remote_protocol, mon$remote_process, mon$user from mon$attachments where mon$attachment_id=current_connection;

MON$REMOTE_PROTOCOL             XNET
MON$REMOTE_PROCESS              C:\HQbird\Firebird30.sql.EXE
MON$USER                        SYSDBA