Comment activer ou désactiver les protocoles de connexion pour Firebird sous Windows
Firebird sur Windows dispose des commutateurs suivants pour activer explicitement les protocoles de connexion :
- -i active le protocole INET, utilisé lorsque la chaîne de connexion ressemble à localhost:Disk\Path\database.fdb ou server_name:Disk:\Path\database.fd b, pour 3.0 cela peut aussi être inet://servername:disk:\path\bd.fdb
- -x active le protocole XNET. Sur 2.5 et versions antérieures, la chaîne de connexion est le simple chemin local Disk:\Path\database.fdb, sur 3.0+ c’est xnet://Disk:\Path\database.fdb
- -w active le protocole WNET (NetBEUI), pour des chaînes de connexion comme \ \servername\disk:\path\database.fdb. N’utilisez pas de telles chaînes de connexion (c’est le sujet d’un autre article expliquant pourquoi c’est mauvais) !
Par défaut, tous les protocoles sont activés.
Cependant, si un commutateur est explicitement spécifié, les protocoles non spécifiés sont désactivés !
Regardons l’exemple suivant
Le comportement par défaut - les 3 protocoles sont activés :
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;
Seul XNET (connexion locale) est autorisé :
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;
Seul INET (connexion TCP) est autorisé :
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;
Connexions INET et XNET, mais pas 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;
Ces commutateurs peuvent être utilisés pour gérer Firebird en mode application et en mode service.
Par exemple, si vous devez restreindre les connexions au serveur Firebird via le réseau, vous pouvez utiliser le commutateur -x.
Une autre bonne application des commutateurs : si vous voyez des erreurs WNET dans firebird.log, cela signifie que quelqu’un utilise une chaîne de connexion WNET. Spécifiez -i -x, et vous identifierez facilement les utilisateurs avec une chaîne de connexion WNET par leurs cris bruyants :)
Cela vous a plu ? Vous voulez plus d’astuces, de trucs et de blagues sur Firebird ? Abonnez-vous au canal Telegram FirebirdSQL !