Bu sayfa makine çevirisidir. İngilizce orijinalini okuyun. English

IBSurgeon kütüphanesi

Firebird 3'ün, 2.5'teki gömülü bağlantı dizesiyle nasıl bağlanacağı

Bildiğiniz gibi, bağlantı dizesinde yalnızca veritabanının yolunu belirtirseniz (localhost veya sunucu adı veya xnet olmadan), Firebird 3 veritabanına gömülü sunucu olarak bağlanır:

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

Gördüğünüz gibi, Firebird gömülü bağlantı durumunda kimlik doğrulama yapmaz - parola yoktur ve MON$REMOTE_PROTOCOL null’dur

Yerel veritabanına kimlik doğrulama ile XNET kullanıcısı olarak bağlanmak istiyorsanız, standart yol protokol olarak XNET belirtmektir.

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        

Ancak, firebird.conf dosyasındaki sağlayıcıların sırasını aşağıdaki gibi değiştirirseniz gömülü bağlantıları “yasaklamak” mümkündür:

Code
Providers = Loopback, Engine12,  Remote

Bu durumda, parola olmadan gömülü olarak bağlanmak mümkün olmayacaktır, çünkü Firebird XNET kullanacaktır

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>

Kullanıcı adı ve parola ile bağlantı durumunda, bağlantı Firebird 2.5’teki gibi XNET olarak kurulacaktır

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