Jak povolit nebo zakázat připojovací protokoly pro Firebird ve Windows
Firebird na Windows má následující přepínače pro explicitní povolení připojovacích protokolů:
- -i povoluje protokol INET, používá se, když připojovací řetězec vypadá jako localhost:Disk\Path\database.fdb nebo server_name:Disk:\Path\database.fd b, pro 3.0 to může být také inet://servername:disk:\path\bd.fdb
- -x povoluje protokol XNET. Na 2.5 a starších je připojovací řetězec jednoduchá lokální cesta Disk:\Path\database.fdb, na 3.0+ je to xnet://Disk:\Path\database.fdb
- -w povoluje protokol WNET (NetBEUI), pro připojovací řetězce jako \ \servername\disk:\path\database.fdb. Nepoužívejte takové připojovací řetězce (je to téma jiného článku, proč je to špatné)!
Ve výchozím nastavení jsou povoleny všechny protokoly.
Pokud je však některý přepínač explicitně zadán, nespecifikované protokoly jsou zakázány!
Podívejme se na následující příklad
Výchozí chování - všechny 3 protokoly jsou povoleny:
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;
Pouze XNET (lokální připojení) je povoleno:
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;
Pouze INET (TCP připojení) je povoleno:
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;
Připojení INET a XNET, ale nepovolit 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;
Tyto přepínače lze použít ke správě Firebirdu v aplikačním režimu i v režimu služby.
Například pokud potřebujete omezit připojení k serveru Firebird přes síť, můžete použít přepínač -x.
Další dobré použití přepínačů: pokud vidíte chyby WNET v firebird.log, znamená to, že někdo používá připojovací řetězec WNET. Zadejte -i -x a snadno identifikujete uživatele s připojovacím řetězcem WNET podle jejich hlasitých výkřiků :)
Líbil se vám článek? Chcete více tipů, triků a vtipů o Firebirdu? Přihlaste se k odběru telegramového kanálu FirebirdSQL!