今日、私はFirebird 3.0を試してみるつもりですが、何らかの理由で、少なくともJDBCアプリケーションから接続できる方法ではインストールできないようです。
私がしたことはこの記事に従うことでした:
http://firebird3.blogspot.com.br/2012/03/how-to-install-firebird-3.html
これが起こったことです:
c:\ etc\Firebird30> gsec -add sysdba -pass masterkey c:\ etc\Firebird30> start firebird.exe -a -m c:\ etc\Firebird30> isql CONNECTまたはCREATE DATABASEを使用してデータベースを指定します SQL> create database "localhost:c:\ temp\mydbfb3.fdb" user "sysdba "password" masterkey "; ステートメントが失敗しました、SQLSTATE = 08006 接続からのデータの読み取りエラー。 SQL>
「ローカルに」データベースを作成することは今機能します:
SQL>データベース "c:\ temp\mydbfb3.fdb"ユーザー "sysdba"パスワード "masterkey"; SQL> commit; SQL> を作成します
しかし、その場合、JDBCアプリケーション(まだすべて「localhost」)から接続すると、エラーメッセージが表示されます(sysdba/masterkeyを使用してログインします)。
GDS例外。 335544472。ユーザー名とパスワードが定義されていません。 Firebirdログインの設定をデータベース管理者に依頼してください。 理由:ユーザー名とパスワードが定義されていません。データベース管理者にFirebirdログインのセットアップを依頼してください。
JDBCアプリケーションのユーザー名とパスワードがsysdba/masterkeyであることを(複数回)再確認しました。
コマンドラインから、新しく作成したデータベースに実際にアクセスできます。
SQL> connect 'c:\ temp\mydbfb3.fdb'; データベース: 'c:\ temp\mydbfb3.fdb' SQL> create table foo(bar integer) ; SQL> insert into foo values(1); SQL> select * from foo; BAR ====== ====== 1 SQL>コミット; SQL>
私は明白な何かを見逃していると確信していますが、何ですか?
問題は2つあります。
最初のFirebird 3はより厳しいセキュリティを使用し、古い認証メカニズムはデフォルトで無効になっています。そのため、古い接続ライブラリに依存するクライアントは、そのままでは機能しません。
古い認証メカニズムを機能させるには、firebird.confで次の設定を行う必要があります。
AuthServer = Legacy_Auth, Srp, Win_Sspi
(必ず#
接頭辞を削除してください)
2番目に、Jaybird(Firebird JDBCドライバー)の純粋なJavaワイヤープロトコル実装は、このLegacy_Auth
オプションでサポートされていない古い認証メカニズムを使用します。現時点でJaybirdを使用してFirebird 3に接続できるのは、ネイティブオプション(jdbc:firebirdsql:native:
URL-prefixおよびjaybird2x.dllおよびfbclient.dllを使用)を使用している場合のみです。
Firebird 3(Alpha 1以降)には、Jaybirdで使用されていた古い認証方法も実装されているため、Jaybirdはネイティブライブラリを使用しなくても機能します(レガシー認証が有効で、ユーザーがレガシーユーザーマネージャーで設定されている場合) )。
Jaybird 3以降では、追加設定なしでより安全なSrp認証モデルがサポートされ、Jaybird 3.0.4では、ワイヤープロトコル暗号化のサポートが導入されました。これは、追加の構成なしでFirebird 3に接続できることを意味します。