Cách bật hoặc tắt các giao thức kết nối cho Firebird trên Windows
Firebird trên Windows có các switch sau để bật tường minh các giao thức kết nối:
- -i bật giao thức INET, được sử dụng khi chuỗi kết nối có dạng localhost:Disk\Path\database.fdb hoặc server_name:Disk:\Path\database.fd b, đối với 3.0 cũng có thể là inet://servername:disk:\path\bd.fdb
- -x bật giao thức XNET. Trên 2.5 và các phiên bản trước, chuỗi kết nối là đường dẫn cục bộ đơn giản Disk:\Path\database.fdb, trên 3.0+ là xnet://Disk:\Path\database.fdb
- -w bật giao thức WNET (NetBEUI), cho các chuỗi kết nối như \ \servername\disk:\path\database.fdb. Đừng sử dụng các chuỗi kết nối như vậy (đây là chủ đề của một bài viết khác về lý do tại sao nó không tốt)!
Theo mặc định, tất cả các giao thức đều được bật.
Tuy nhiên, nếu một switch nào đó được chỉ định tường minh, các giao thức không được chỉ định sẽ bị vô hiệu hóa!
Hãy xem xét ví dụ sau
Hành vi mặc định - cả 3 giao thức đều được bật:
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;
Chỉ cho phép XNET (kết nối cục bộ):
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;
Chỉ cho phép INET (kết nối 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;
Kết nối INET và XNET, nhưng không cho phép 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;
Các switch này có thể được sử dụng để quản lý Firebird ở chế độ ứng dụng và chế độ dịch vụ.
Ví dụ: nếu bạn cần hạn chế các kết nối đến máy chủ Firebird qua mạng, bạn có thể sử dụng switch -x.
Một ứng dụng tốt khác của các switch: nếu bạn thấy lỗi WNET trong firebird.log, điều đó có nghĩa là ai đó đang sử dụng chuỗi kết nối WNET. Hãy chỉ định -i -x, và bạn sẽ dễ dàng xác định những người dùng có chuỗi kết nối WNET qua tiếng la hét của họ :)
Bạn thấy thích không? Muốn thêm mẹo, thủ thuật và câu đùa về Firebird? Hãy đăng ký kênh telegram FirebirdSQL!