2012-01-12 12 views
0

hsqldb形式のデータベースファイル(.data,.properties.scriptファイル)がありますが、以前にそれらを管理していたユーザーが資格情報を残していません。hsqldbバイパス認証:忘れたユーザーとパスワードをリセットする

 
java.sql.SQLException: User not found: SA 
     at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
     at org.hsqldb.jdbc.jdbcConnection.(Unknown Source) 
     at org.hsqldb.jdbcDriver.getConnection(Unknown Source) 
     at org.hsqldb.jdbcDriver.connect(Unknown Source) 
     at java.sql.DriverManager.getConnection(DriverManager.java:582) 
     at java.sql.DriverManager.getConnection(DriverManager.java:185) 
... 
:私はデフォルトの「sa」ユーザとデフォルトの空のパスワードを渡し、(例えばSqlToolかのDatabaseManagerなど)、スタンドアロンのファイルベースのデータベースにアクセスするための任意の手段を使用してデータベースに接続しようとすると、私はそのような何かを得ます

hsqldb認証と承認のスキーム全体を簡単にバイパスし、 "sa"ユーザーを完全な権利でリセットする方法はありますか?私はhsqldbのドキュメント全体を掘り下げ、Google上でいくつかの調査をしましたが、それをバイパスする手段が見つかりませんでしたか?

また、ブルートフォースなしでは完全に不可能です(つまり、ファイルは実際にで暗号化されており、特定のパスワードでに暗号化されています)。 This questionは、パスワードが.scriptファイルに保存されていると述べていますが、またはBINARYの形式(私は裸眼ではどちらにもわかりません)に設定されているように見えます。SET SCRIPTFORMATコマンドを使用しています。 .dataファイルにあります。バイナリ形式を解読することは可能ですか?

答えて

1

.dataファイルにクリアテキスト文字列がある場合、データベースは暗号化されません。

HSQLDBは​​opensourceであるため、ソースを編集して、データベースを開いたときにコンソールにユーザー名とパスワードを表示することができます。この目的のために、Userという名前のクラスを探します。これは、暗号化キーなしではまったく開かれていない暗号化されたデータベースでは実行できません。

+0

ありがとうございました!私は認証スキームをバイパスする "公式の"方法はないと仮定しますが、最初の接続試行時にすべての認証データを明らかにするためにソースを修正するのは簡単です。他の誰かが必要とする場合は、 'UserManager#createUser(name、password)'に 'name'と' password'のダンプを追加するだけです。 – GreyCat

関連する問題