Delphi 2006とFirebird 2.5で作成したアプリケーションがあります。接続には、DelphiのInterbaseコンポーネントを使用します。デザインタイムにユーザー名、パスワードtc、およびokを使用してTIBDatabaseを設定しますが、別のPCでアプリケーションを実行したい場合(最初にFirebird 2.5をインストールします)、このエラーを受け取りました:
Statement failed, SQLSTATE = 28000
ユーザー名とパスワードが定義されていません。データベース管理者にFirebirdログインのセットアップを依頼してください。
これは何ですか?どうすれば解決できますか?
このメッセージには、開発マシンで設計時に接続するために使用しているユーザー名とパスワードが、othermachine(本番と呼びましょう)。メッセージから、設計時に接続するサーバーとは異なるようです。
TIBDatabaseコンポーネントでLoginPromptプロパティをtrueに設定して、接続する前に適切な資格情報をユーザーに要求できるように、この問題を簡単にテストすることをお勧めします。そのサーバーの有効なユーザー名/パスワードの組み合わせを使用して接続できます。組み合わせが有効であることを確認するには、isqlコマンドラインツール、たとえば次のコマンドを使用して接続を試みます。
c:\test>isql test.fdb -u sysdba -p masterkey
デフォルトのユーザー名とパスワードを使用してc:\ test\test.fdbに接続します。 (firebirdのルートディレクトリは、これが機能するためにパス環境変数になければなりません)
また、gsecコマンドラインツールを使用してこのエンジンのパスワードを調整するか、接続する前にその実稼働マシンでユーザーの作成とパスワードの変更を提供できます。
Windowsでは、firebirdのデフォルトのsysdbaパスワードはmasterkeyです。
Firebird 2.5クライアントライブラリを使用してFirebird 3.0.3データベースに接続しようとすると、このエラーが発生しました。クライアントライブラリを3.0.3に更新するのを忘れました。たぶんこれは誰かを助けるでしょう。
Linuxターミナルの「isql-fb」で、データベースの「CONNECT」の後:-delete(drop)の後で解決し、「SYSDBA」ユーザーを再作成しました。
観察:「/ tmp/firebird」でファイルとフォルダーのアクセス許可に問題があり、「isql-fb」を開くには「Sudo」またはルートを使用する必要がありました
ありがとう。
このエラーは、Firebird dbの認証情報がデータベースファイルに保存されていないためです。 Firebirdサーバーの設定ファイルに保存されます。パスワードではなくDBファイルをコピーすると、別のパスワードになります。
Ubuntuマシンでは、ファイル内のパスワードとユーザー名/etc/firebird/<version>/SYSDBA.password
次のようになります。
ISC_USER=sysdba
ISC_PASSWORD="password"
これらの資格情報を使用して、データベースファイルに接続します。