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

IBSurgeon библиотека

Како омогућити или онемогућити протоколе повезивања за Firebird на Windows-у

Firebird на Windows има следеће прекидаче за експлицитно омогућавање протокола за повезивање:

  1. -i омогућава INET протокол, користи се када стринг за повезивање изгледа као localhost:Disk\Path\database.fdb или server_name:Disk:\Path\database.fd b, за 3.0 такође може бити inet://servername:disk:\path\bd.fdb
  2. -x омогућава XNET протокол. На 2.5 и ранијим верзијама стринг за повезивање је једноставна локална путања Disk:\Path\database.fdb, на 3.0+ је xnet://Disk:\Path\database.fdb
  3. -w омогућава WNET (NetBEUI) протокол, за стрингове за повезивање као \ \servername\disk:\path\database.fdb. Немојте користити такве стрингове за повезивање (то је тема другог чланка зашто је то лоше)!

Подразумевано, сви протоколи су омогућени.

Међутим, ако је неки прекидач експлицитно наведен, не-наведени протоколи су онемогућени!

Погледајмо следећи пример

Подразумевано понашање - сва 3 протокола су омогућена:

Code
C:\HQbird\Firebird30>firebird  -a

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  localhost:o:\OLTP30.V20190415.FDB
Database: localhost:o:\OLTP30.V20190415.FDB, User: SYSDBA
SQL> exit;

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  xnet://o:\OLTP30.V20190415.FDB
Database: xnet://o:\OLTP30.V20190415.FDB, User: SYSDBA
SQL> exit;

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  \\Win-0u7pnfkg57p\o:\OLTP30.V20190415.FDB
Database: \\Win-0u7pnfkg57p\o:\OLTP30.V20190415.FDB, User: SYSDBA
SQL>exit;

Само XNET (локална веза) је дозвољен:

Code
C:\HQbird\Firebird30>firebird  -a  -x

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  localhost:o:\OLTP30.V20190415.FDB
Statement failed, SQLSTATE = 08006
Unable to complete network request to host "localhost".
-Failed to establish a connection.
Use CONNECT or CREATE DATABASE to specify a database
SQL> exit;

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  xnet://o:\OLTP30.V20190415.FDB
Database: xnet://o:\OLTP30.V20190415.FDB, User: SYSDBA
SQL> exit;

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  \\Win-0u7pnfkg57p\o:\OLTP30.V20190415.FDB
Statement failed, SQLSTATE = 08006
Unable to complete network request to host ".".
-Failed to establish a connection.
-The system cannot find the file specified.
Use CONNECT or CREATE DATABASE to specify a database
SQL> exit;

Само INET (TCP веза) је дозвољен:

Code
C:\HQbird\Firebird30>firebird  -a  -i

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  localhost:o:\OLTP30.V20190415.FDB
Database: localhost:o:\OLTP30.V20190415.FDB, User: SYSDBA
SQL> exit;

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  xnet://o:\OLTP30.V20190415.FDB
Statement failed, SQLSTATE = 08006
Unable to complete network request to host "xnet://Global\FIREBIRDHQBIRD".
Use CONNECT or CREATE DATABASE to specify a database
SQL> exit;

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  \\Win-0u7pnfkg57p\o:\OLTP30.V20190415.FDB
Statement failed, SQLSTATE = 08006
Unable to complete network request to host ".".
-Failed to establish a connection.
-The system cannot find the file specified.
Use CONNECT or CREATE DATABASE to specify a database
SQL> exit;

INET и XNET везе, али не дозвољавај WNET:

Code
C:\HQbird\Firebird30>firebird  -a  -i -x

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  localhost:o:\OLTP30.V20190415.FDB
Database: localhost:o:\OLTP30.V20190415.FDB, User: SYSDBA
SQL> exit;

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  xnet://o:\OLTP30.V20190415.FDB
Database: xnet://o:\OLTP30.V20190415.FDB, User: SYSDBA
SQL> exit;

C:\HQbird\Firebird30>isql -user SYSDBA -pass masterkey  \\Win-0u7pnfkg57p\o:\OLTP30.V20190415.FDB
Statement failed, SQLSTATE = 08006
Unable to complete network request to host ".".
-Failed to establish a connection.
-The system cannot find the file specified.
Use CONNECT or CREATE DATABASE to specify a database
SQL> exit;

Ови прекидачи се могу користити за управљање Firebird-ом у апликативном режиму и у сервисном режиму.

На пример, ако треба да ограничите везе ка Firebird серверу преко мреже, можете користити прекидач -x.

Још једна добра примена прекидача: ако видите WNET грешке у firebird.log-у, то значи да неко користи WNET стринг за повезивање. Наведите -i -x, и лако ћете идентификовати кориснике са WNET стрингом за повезивање по њиховим гласним врисковима :)

Да ли вам се свидело? Желите још Firebird савета, трикова и шала? Претплатите се на FirebirdSQL телеграм канал!