Jak włączyć lub wyłączyć protokoły połączeń dla Firebird w systemie Windows
Firebird na Windows ma następujące przełączniki umożliwiające jawne włączenie protokołów połączenia:
- -i włącza protokół INET, używany, gdy ciąg połączenia wygląda jak localhost:Dysk:\Ścieżka\database.fdb lub nazwa_serwera:Dysk:\Ścieżka\database.fdb, dla wersji 3.0 może to być również inet://nazwa_serwera:dysk:\ścieżka\bd.fdb
- -x włącza protokół XNET. W wersjach 2.5 i starszych ciąg połączenia to prosta lokalna ścieżka Dysk:\Ścieżka\database.fdb, w wersji 3.0+ jest to xnet://Dysk:\Ścieżka\database.fdb
- -w włącza protokół WNET (NetBEUI), dla ciągów połączeń takich jak \ \nazwa_serwera\dysk:\ścieżka\database.fdb. Nie używaj takich ciągów połączeń (to temat na inny artykuł, dlaczego to złe rozwiązanie)!
Domyślnie wszystkie protokoły są włączone.
Jednak jeśli jakiś przełącznik jest jawnie określony, protokoły nieokreślone są wyłączone!
Spójrzmy na następujący przykład
Domyślne zachowanie - wszystkie 3 protokoły są włączone:
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;
Tylko XNET (połączenie lokalne) jest dozwolone:
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;
Tylko INET (połączenie TCP) jest dozwolone:
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;
Połączenia INET i XNET, ale bez WNET:
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;
Te przełączniki mogą być używane do zarządzania Firebird w trybie aplikacji oraz w trybie usługi.
Na przykład, jeśli potrzebujesz ograniczyć połączenia do serwera Firebird przez sieć, możesz użyć przełącznika -x.
Inne dobre zastosowanie przełączników: jeśli widzisz błędy WNET w firebird.log, oznacza to, że ktoś używa ciągu połączenia WNET. Określ -i -x, a łatwo zidentyfikujesz użytkowników z ciągiem połączenia WNET po ich głośnych krzykach :)
Podobało Ci się? Chcesz więcej wskazówek, trików i żartów o Firebird? Subskrybuj kanał telegram FirebirdSQL!