23

Delphi 2006 と Firebird 2.5 でアプリケーションを作成しました。接続には、Delphi の Interbase コンポーネントを使用します。設計時にユーザー名、パスワード tc を使用して TIBDatabase をセットアップし、正常に動作しましたが、別の PC でアプリケーションを実行したい場合 (最初に Firebird 2.5 をインストールします)、次のエラーを受け取りました:

Statement failed, SQLSTATE = 28000

ユーザー名とパスワードが定義されていません。データベース管理者に Firebird ログインの設定を依頼してください。

これは何ですか?どうすれば解決できますか?

4

5 に答える 5

17

このメッセージは、開発マシンで設計時に接続するために使用しているユーザー名とパスワードが、他のマシンで接続しようとしているデータベース サーバーに対して有効ではないことを明確に示しています (本番と呼びましょう)。あなたのメッセージから、設計時に接続するのと同じサーバーではないようです。

この問題を簡単にテストして、TIBDatabase コンポーネントで LoginPrompt プロパティを true に設定し、接続前に適切な資格情報をユーザーに要求できるようにすることをお勧めします。そのサーバーの有効なユーザー名とパスワードの組み合わせを使用して接続できます。組み合わせが有効であることを確認するには、次のコマンドなど、isql コマンド ライン ツールを使用して接続を試みます。

c:\test>isql test.fdb -u sysdba -p masterkey

デフォルトのユーザー名とパスワードを使用して c:\test\test.fdb に接続します。(これが機能するには、firebird ルート ディレクトリがパス環境変数に含まれている必要があります)

また、gsec コマンド ライン ツールを使用してこのエンジンのパスワードを調整するか、接続を試行する前にその運用マシンでユーザーの作成とパスワードの変更を行うことができます。

Windows では、firebird のデフォルトの sysdba パスワードはmasterkeyです。

于 2010-11-25T04:29:34.700 に答える
1

このエラーは、Firebird db の認証情報がデータベース ファイルに保存されていないことが原因です。Firebird サーバーの構成ファイルに保存されます。パスワードではなくDBファイルをコピーすると、別のパスワードになります。

Ubuntu マシンでは、ファイル内のパスワードとユーザー名を見つけることができます。/etc/firebird/<version>/SYSDBA.password

次のようになります。

ISC_USER=sysdba
ISC_PASSWORD="password"

これらの資格情報を使用して、データベース ファイルに接続します。

于 2014-05-02T19:28:26.320 に答える