-1

ローカルの firebird データベースにアクセスするプログラムがあります。このデータベースへの書き込みアクセス権があり、このデータベースに書き込むことができる必要がありますが、ユーザー名/パスワードがわかりません。

明らかに、PC のどこかに、そのデータベースに接続できるようにするための接続文字列/ユーザー名/パスワードがあります。これを見つけるためにどのような方法を使用できますか?

プロセス モニターを試して、レジストリ キーにアクセスするかどうかを確認しましたが、何も表示されません。構成ファイルのインストール ディレクトリを確認しました。DAL DLL のいくつかを逆コンパイルしましたが、どこにもハードコーディングが見当たりません。

そのベンダーはもういないので、私たちは彼らに行くことができません。

アドバイスをいただければ幸いです。

4

2 に答える 2

2

「ローカル」で埋め込みを意味する場合、実際にはパスワードを知る必要はありません。埋め込みバージョンはパスワードをチェックしません。「README_embedded.txt」ファイルの「2.3。認証とセキュリティ」の章からの引用:

セキュリティデータベース(つまり、security2.fdb)は組み込みサーバーでは使用されないため、必要ありません。すべてのユーザーが任意のデータベースに接続できます。サーバーとクライアントの両方が同じアドレス空間で実行されるため、セキュリティは双方の間の単なる合意になり、簡単に危険にさらされる可能性があります。

したがって、実際にはユーザー名のみが必要であり、そのために使用できるSYSDBAのはFirebirdのスーパーユーザーです。ユーザーSQL特権を割り当てるために、ユーザー名が埋め込まれている場合でも、ユーザー名がチェックされていることに注意してください。

于 2013-03-19T06:24:50.000 に答える
0

組み込みの使用に関するainによる回答に加えて、 Firebirdでの認証は、サーバーとそれに関連するセキュリティデータベースによって処理されます。つまり、FirebirdデータベースをSYSDBAパスワードがわかっている別のサーバーにコピー(またはより適切に:バックアップと復元)すると、データベースに簡単にアクセスできるようになります。

ただし、別のプロセスから、ユーザーアプリケーションに組み込まれたFirebirdサーバーによって使用されるデータベースへの継続的な書き込みアクセスが必要な場合はできません。組み込みサーバー(少なくともWindowsでは)は、外部接続を許可しません。

于 2013-03-19T19:22:19.917 に答える