Como habilitar ou desabilitar protocolos de conexão para o Firebird no Windows
Firebird no Windows tem os seguintes switches para habilitar explicitamente os protocolos de conexão:
- -i habilita o protocolo INET, usado quando a string de conexão se parece com localhost:Disk:\Path\database.fdb ou server_name:Disk:\Path\database.fd b, para 3.0 também pode ser inet://servername:disk:\path\bd.fdb
- -x habilita o protocolo XNET. No 2.5 e anteriores, a string de conexão é o caminho local simples Disk:\Path\database.fdb, no 3.0+ é xnet://Disk:\Path\database.fdb
- -w habilita o protocolo WNET (NetBEUI), para strings de conexão como \ \servername\disk:\path\database.fdb. Não use tais strings de conexão (é assunto de outro artigo por que isso é ruim)!
Por padrão, todos os protocolos estão habilitados.
No entanto, se algum switch for explicitamente especificado, os protocolos não especificados são desabilitados!
Vamos dar uma olhada no seguinte exemplo
O comportamento padrão - todos os 3 protocolos estão habilitados:
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;
Somente XNET (conexão local) é permitido:
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;
Somente INET (conexão TCP) é permitido:
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;
Conexões INET e XNET, mas não permitir 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;
Esses switches podem ser usados para gerenciar o Firebird no modo aplicativo e no modo serviço.
Por exemplo, se você precisar restringir conexões ao servidor Firebird através da rede, você pode usar o switch -x.
Outra boa aplicação dos switches: se você vir erros WNET no firebird.log, isso significa que alguém está usando string de conexão WNET. Especifique -i -x, e você identificará facilmente os usuários com string de conexão WNET pelos seus gritos altos :)
Gostou? Quer mais dicas, truques e piadas sobre Firebird? Inscreva-se no canal do Telegram FirebirdSQL!