3

現在、ASP.net 4.5 プロジェクトを最近リリースされた Firebird 3.0 に接続しようとしています。

Visual Studio 2015 Community エディション、Firebird 3 (64 ビット) を使用しており、NuGet を使用して ADO.NET 4.10.0.0 を取得しています。

ただし、接続しようとすると、次のメッセージで例外が発生します。

this.connect.ServerVersion が「System.InvalidOperationException」タイプの例外をスローしました

私が得る他のいくつかのメッセージ:

メッセージ: 「接続が閉じられました」
ソース: FirebirdSQL.Data.Fierbird.Client
StackTrace:
at FirebirdSql.Data.FirebirdClient.FbConnection.get_ServerVersion() C:\Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src \FirebirdSql.Data.FirebirdClient\FirebirdClient\FbConnection.cs:217行目

IBExpert は問題なく接続します。

この環境は、以前は Firebird 2.5 および古い ADO.Net で動作していました

現時点で最も推測できるのは、サポートされていないということですが、オンラインでの私の調査では決定的ではありませんでした (私が見つけたものから、Firebird 3 RC1 でテストされたという兆候がありました)。

誰かがこれを実行するために正しい方向に私を向けることができれば、それは素晴らしいことです.

前もって感謝します!

4

1 に答える 1

8

Firebird 3 をインストールし、その構成を変更していないことを前提として、これに回答しています。デフォルトでは、Firebird 3 のインストールにはいくつかの厳格なセキュリティ設定があります。

  • 新しい SRP 認証モデルのみをサポートします
  • ワイヤープロトコル暗号化が必要です

これは、SRP 認証モデルとワイヤ プロトコル暗号化をまだサポートしていないドライバー (Firebird .NET プロバイダー 4.10 など) は、そのままでは接続できないことを意味します。

接続できるようにするには、次のことを行う必要があります

  1. 従来の認証モデルを有効にする
  2. ワイヤ プロトコル暗号化設定を必須から有効にダウングレードします。
  3. 従来の認証モデルでユーザーを作成する

これらの手順はすべて、 を編集する必要がありますfirebird.conf。Firebird を にインストールした場合Program Filesは、変更を保存できるように、エディターが管理者として実行されていることを確認する必要があります。

レガシー認証を有効にする

レガシー認証を有効にするには、次の行を編集または追加する必要があります: ( で始まる行はコメントfirebird.confであることに注意してください!)#

AuthServer = Srp, Legacy_Auth

ワイヤ プロトコル暗号化をダウングレードする

ワイヤ プロトコルの暗号化設定をダウングレードするには、次の行を に編集または追加する必要がありますfirebird.conf

WireCrypt = Enabled

従来の認証ユーザーを作成する

従来の認証モデルでユーザーを作成できるようにするには、次の行を編集または追加して、従来の usermanager プラグインを有効にする必要がありますfirebird.conf

UserManager = Srp, Legacy_UserManager

上記の変更後、Firebird を再起動し、SYSDBA または別の管理者アカウントを使用してお気に入りのデータベース管理ツールで (任意の) Firebird 3 データベースに接続し、Legacy_UserManager を使用してユーザーを作成しますCREATE USER(ユーザー名とパスワードlegacyを適切な値に置き換えます):

CREATE USER legacy PASSWORD 'legacy' USING PLUGIN Legacy_UserManager

必ずコミットしてください。そうしないと、ユーザーは実際には作成されません。

これで、作成したユーザーを使用して C# から接続できるようになります。

これは、Firebird 3 リリース ノートの第 12 章互換性の問題、レガシー認証にも記載されています。

またはサービス機能を使用gsecしてユーザーを作成することは非推奨です。これらのいずれかを引き続き使用してレガシー認証モデルでユーザーを作成する場合は、編集してリストの最初にfirebird.conf配置する必要があります。Legacy_UserManager

Firebird .NET プロバイダー バージョン 5.0.0.0 以降でのサポート

Firebird .NET プロバイダー バージョン 5.0.0.0 では、SRP のサポートが追加されたことに注意してください (ワイヤ プロトコル暗号化なし)。そのため、Firebird .NET プロバイダー バージョン 5 から、新しい認証モデルを使用できます。ワイヤ プロトコル暗号化 (設定WireCrypt) をRequired(デフォルト) からEnabled上記のようにダウングレードしてください。

于 2016-04-23T07:24:47.123 に答える