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:
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.
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:
Providers = Loopback, Engine12, Remote
Bu durumda, parola olmadan gömülü olarak bağlanmak mümkün olmayacaktır, çünkü Firebird XNET kullanacaktır
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
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