1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

metabaseのDBファイルを覗いてみる

Posted at

はじめに

metabaseとは、気軽に導入できるのが特徴のオープンソースのBIツール(データ可視化ツール)です。

今回はmetabaseのDBファイルを覗いてみる機会があったので、その備忘録として記事を残しておきます。

背景

metabaseのDB調査が必要になった経緯はこんな感じです。

・metabaseはローカルPCで試験的に運用
・ある日metabaseにログインできなくなった
・LDAPサーバーに変更があり、認証ができなくなったと判明
・復旧しようにも管理アカウントのIDは不明
・SMTP設定がされていないため、リセットメールの送信も不可

なかなかな状況ですが、DBファイルを覗ければなんとか復旧できるかもしれません。
試しにやってみましょうとなりました。

DBファイルの構造

DBファイルはmetabaseのルートフォルダの下に保存されています。

└metabase.db
 ├ metabase.db.mv.db
 └ metabase.db.trace.db

metabaseのDBは、デフォルトではH2という形式が使われています。

H2のコンソールを入手

H2のDBを開くためにはH2のコンソールを入手しましょう。
公式サイトからダウンロードができます。
実行にはJAVAのインストールが必要です。事前に用意しておいてください。

インストーラを使ってもいいですが、今回はZIPを使用することにしました。
DLして展開できたらbinフォルダにある「h2-X.X.XXX.jar」を起動するとコンソールが立ち上がります(Xの部分にはバージョン番号が入ります)

ここで要注意なのが、metabaseで使われているH2とコンソールのバージョンを合わせる必要があるということです。
うまくいかない場合は、H2公式サイトの「Archive Downloads」から適合するバージョンを探してください。

H2のDBに接続する

コンソールが立ち上がったら、DBを開くために各種の設定を入れていきます。
H2コンソール.png
JDBC URLには上記の構造で挙げたmetabase.dbフォルダのパスをfile:の形式で指定します。
metabase.db.mv.dbファイルのパスではないので注意!
ここでパス指定をミスると、新規作成扱いになり、シレッと空のテーブルが開かれてしまうので気をつけましょう。

ユーザ名・パスワードを入力して、「接続」を押して進みましょう。
ここでのユーザ名・パスワードはmetabase自体のものではなく、H2のDBに設定されているもので、
metabaseのデフォルト状態では空になっています。

DBから必要な情報を得る・操作する

接続したらDBの各種テーブルが閲覧できます。
左のテーブル一覧から開きたいテーブルを選ぶとクエリが補間されるので「実行」します。
H2操作.png

今回のようなケースの場合、目的のデータは「SETTING」にあり、基本設定が保存されています。
ここからSMTPの設定やLDAPの設定を得ることができます。

また「CORE_USER」で登録されているユーザーの一覧を見ることができます。
どんなアカウントがあるかや設定されたメールアドレスを確認できます。
(パスワードはハッシュで保存されているので直接は見れません)

クエリに必要な情報を記述して実行し、復旧のための情報を書き換えたら、作業完了です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?