Esta página foi traduzida por máquina. Leia o original em inglês. English

Biblioteca IBSurgeon

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:

  1. -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
  2. -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
  3. -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:

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;

Somente XNET (conexão local) é permitido:

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;

Somente INET (conexão TCP) é permitido:

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;

Conexões INET e XNET, mas não permitir 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;

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!