このページは機械翻訳されています。英語の原文をお読みください。 English

IBSurgeon ライブラリ

WindowsでFirebirdの接続プロトコルを有効または無効にする方法

Firebird on Windows には、接続プロトコルを明示的に有効にするためのスイッチがあります:

  1. -i はINETプロトコルを有効にします。接続文字列が localhost:Disk\Path\database.fdb または server_name:Disk:\Path\database.fd b のような場合に使用されます。3.0では、 inet://servername:disk:\path\bd.fdb も使用できます。
  2. -x はXNETプロトコルを有効にします。2.5以前では接続文字列は単純なローカルパス Disk:\Path\database.fdb ですが、3.0以降では xnet://Disk:\Path\database.fdb です。
  3. -w はWNET(NetBEUI)プロトコルを有効にします。接続文字列は \ \servername\disk:\path\database.fdb のような形式です。このような接続文字列は使用しないでください(なぜそれが悪いのかは別の記事のトピックです)!

デフォルトでは、すべてのプロトコルが有効です。

ただし、スイッチが明示的に指定された場合、指定されていないプロトコルは無効になります!

次の例を見てみましょう。

デフォルトの動作 - 3つのプロトコルすべてが有効:

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;

XNET(ローカル接続)のみ許可:

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;

INET(TCP接続)のみ許可:

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;

INETとXNET接続を許可するが、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;

これらのスイッチは、Firebirdをアプリケーションモードおよびサービスモードで管理するために使用できます。

たとえば、ネットワーク経由でのFirebirdサーバーへの接続を制限する必要がある場合は、スイッチ -x を使用できます。

スイッチのもう1つの良い用途:firebird.log にWNETエラーが表示される場合、誰かがWNET接続文字列を使用していることを意味します。-i -x を指定すると、WNET接続文字列を使用しているユーザーを、その大きな叫び声で簡単に特定できます :)

気に入りましたか?Firebirdのヒント、テクニック、ジョークをもっと知りたいですか?FirebirdSQL テレグラムチャンネルを購読してください!