Ова страница је машински преведена. Прочитајте енглески оригинал. English

IBSurgeon библиотека

Како натерати Firebird 3 да се повеже као 2.5 са уграђеним низом за повезивање

Као што знате, ако у низу за повезивање наведете само путању до базе података (без localhost или имена сервера или xnet), Firebird 3 се повезује са базом као уграђени сервер:

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

Као што видите, Firebird не врши аутентификацију у случају уграђене везе - лозинка је одсутна, а MON$REMOTE_PROTOCOL је null

Ако желите да се повежете са локалном базом као XNET корисник, са аутентификацијом, стандардни начин је да наведете XNET као протокол.

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        

Међутим, могуће је „забранити“ уграђене везе, ако промените редослед провајдера у firebird.conf на следећи начин:

Code
Providers = Loopback, Engine12,  Remote

У овом случају, неће бити могуће повезати се као уграђени без лозинке, јер ће Firebird користити XNET

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>

У случају повезивања са корисничким именом и лозинком, веза ће бити успостављена као XNET, као у Firebird 2.5

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