web-dev-qa-db-ja.com

ISQLでローカルFirebirdに接続できません

テストするローカルfirebirdインスタンスをセットアップしようとしていますが、ISQLでも接続できません。クイックスタートガイドに従ってフォローしようとしました ここ

CONNECT ..\examples\empbuild\employee.fdb user SYSDBA password masterkey;

その結果:

Statement failed, SQLSTATE = 08001
unavailable database

いくつか検索した後、私はそれを次のように変更しようとしました:

CONNECT "localhost:C:\Program Files\Firebird\Firebird_2_5\examples\empbuild\employee.fdb" user SYSDBA password masterkey;

その結果:

Statement failed, SQLSTATE = 28000
cannot attach to password database

正しいディレクトリパスがあることを確認した後、今のところ接続を断念し、新しいDBを作成してみることにしました。

SQL>CREATE DATABASE 'C:\data\test.fdb' page_size 8192
CON>user 'SYSDBA' password 'masterkey';

これも私にエラーを与えました:

Statement failed, SQLSTATE = 08001
unavailable database

私が遭遇する可能性のある一般的な落とし穴はありますか?また、firebirdサービスを実行している場合と実行していない場合の両方で、上記のコマンドを試しました。また、SQLSTATEコードに関する詳細なリファレンスはありますか?

7

私のコメントですでに述べたように、問題はFirebirdサーバーをアプリケーションとして実行することによって引き起こされます。 Firebirdにはパスワードデータベースがあります(security2.fdb)in C:\Program Files\Firebird\Firebird_2_5。このデータベースは(完全ではありませんが)通常のFirebirdデータベースであるため、サーバーにはこのデータベースへの書き込みアクセスが必要です(トランザクションなど)。

デフォルトでは(UACを使用)、ユーザーはパスワードデータベースへの書き込みアクセス権を持っていないため、管理者に昇格する必要があります。したがって、Firebirdにアクセスするには、アプリケーションを十分な権限を持つサービスとして実行するか(たとえば、デフォルトのインストーラーによって実行されるように)、サーバーをアプリケーションとして実行して「管理者として」実行する必要があります。もう1つのオプションは、ProgramFilesにインストールしないことです。

このBTWは、サンプルの従業員データベースにアクセスするときにdoubleを適用します。これは、このデータベースファイルもProgramFilesフォルダーにあるためです。

13
Mark Rotteveel