WindowsでFirebirdの接続プロトコルを有効または無効にする方法
Firebird on Windows には、接続プロトコルを明示的に有効にするためのスイッチがあります:
- -i はINETプロトコルを有効にします。接続文字列が localhost:Disk\Path\database.fdb または server_name:Disk:\Path\database.fd b のような場合に使用されます。3.0では、 inet://servername:disk:\path\bd.fdb も使用できます。
- -x はXNETプロトコルを有効にします。2.5以前では接続文字列は単純なローカルパス Disk:\Path\database.fdb ですが、3.0以降では xnet://Disk:\Path\database.fdb です。
- -w はWNET(NetBEUI)プロトコルを有効にします。接続文字列は \ \servername\disk:\path\database.fdb のような形式です。このような接続文字列は使用しないでください(なぜそれが悪いのかは別の記事のトピックです)!
デフォルトでは、すべてのプロトコルが有効です。
ただし、スイッチが明示的に指定された場合、指定されていないプロトコルは無効になります!
次の例を見てみましょう。
デフォルトの動作 - 3つのプロトコルすべてが有効:
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;
XNET(ローカル接続)のみ許可:
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;
INET(TCP接続)のみ許可:
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;
INETとXNET接続を許可するが、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;
これらのスイッチは、Firebirdをアプリケーションモードおよびサービスモードで管理するために使用できます。
たとえば、ネットワーク経由でのFirebirdサーバーへの接続を制限する必要がある場合は、スイッチ -x を使用できます。
スイッチのもう1つの良い用途:firebird.log にWNETエラーが表示される場合、誰かがWNET接続文字列を使用していることを意味します。-i -x を指定すると、WNET接続文字列を使用しているユーザーを、その大きな叫び声で簡単に特定できます :)
気に入りましたか?Firebirdのヒント、テクニック、ジョークをもっと知りたいですか?FirebirdSQL テレグラムチャンネルを購読してください!