PostgreSQLからMashuへメタデータを同期するための設定手順と、必要なPostgreSQL側の権限について説明します
1. Mashuサーバーのセットアップ
PostgreSQLからMashuへメタデータを同期するためには、Mashuサーバーのセットアップが必要です。Mashuサーバーのセットアップ方法は https://services.robon.co.jp/ja/kb/mashu/server/mashu-server を参照してください。
2.データソースの作成
PostgreSQLのメタデータを同期するために、タイプとして「PostgreSQL」を選択してデータソースを作成します。
3. PostgreSQLへの接続情報設定
データソース画面の「接続設定」タブで、PostgreSQLへの接続情報を設定します。
-
Host: MashuサーバーからPostgreSQLサーバーへ接続する際に使用する、PostgreSQLサーバーのホスト名を指定します。
- (注意)Docker環境での実行について: MashuサーバーがPostgreSQLサーバーと同じホストマシン上のDockerコンテナ内で動作している場合、ホスト名として
localhost
を使用すると接続できません。Dockerコンテナからホストマシン上のPostgreSQLサーバーを参照できるように、ホストマシンのIPアドレスや、お使いのDockerネットワーク環境に応じた適切な接続情報を指定してください。
- (注意)Docker環境での実行について: MashuサーバーがPostgreSQLサーバーと同じホストマシン上のDockerコンテナ内で動作している場合、ホスト名として
- Port: PostgreSQLサーバーのポート番号を指定します。ポート番号を指定しない場合PostgreSQLのデフォルトポート番号
5432
が使用されます。 - DBName: 接続対象となるPostgreSQLデータベースの名前を指定します。
-
User: PostgreSQLへの接続に使用するユーザー名を指定します。
-
Password: 上記
User
に対応するパスワードを指定します。 - SSL接続: PostgreSQLサーバーとSSLを用いて通信したい場合は、SSL接続をONにします。
4. 必要なPostgreSQL権限
MashuがPostgreSQLからメタデータを同期したり、データをプレビューするためには、接続に使用するユーザーに対して、適切な権限が付与されている必要があります。
4.1. スキーマのUSAGE
権限
同期対象スキーマに対するUSAGE
権限が必要です。
GRANT USAGE ON SCHEMA <スキーマ名> TO <ユーザー名>;
4.2. 既存テーブルへのSELECT, REFERENCES
権限
同期対象スキーマ内の同期対象テーブルに対するSELECT
REFERENCES
権限が必要です。
GRANT SELECT, REFERENCES ON ALL TABLES IN SCHEMA <スキーマ名> TO <ユーザー名>;
4.3. 将来作成されるテーブルへの権限設定について
上記 GRANT SELECT, REFERENCES ON ALL TABLES
コマンドは、実行時点でスキーマ内に存在するテーブルに対してのみSELECT
REFERENCES
権限を付与します。そのため、このコマンド実行後に新しく作成されたテーブルには、自動的にSELECT
REFERENCES
権限が付与されません。
将来作成されるテーブルにも自動的にSELECT
REFERENCES
権限を付与するためには、以下のコマンドを実行して、対象スキーマにおけるデフォルト権限を設定してください。
ALTER DEFAULT PRIVILEGES IN SCHEMA <スキーマ名> GRANT SELECT, REFERENCES ON TABLES TO <ユーザー名>;
これにより、<ユーザー名>
は、<スキーマ名>
内で今後作成される新しいテーブルに対しても、自動的にSELECT
REFERENCES
権限を持つようになります。
5. 接続設定の保存とスキーマ選択
PostgreSQLへの接続情報を入力後、「保存」ボタンをクリックします。PostgreSQLへの接続に成功すると、メタデータを同期するスキーマを選択できるようになります。
同期したいメタデータが含まれるスキーマを選択してください。
6. メタデータの同期実行
スキーマ選択後、データソース画面の「メタデータ」タブに移動し、「メタデータ同期」ボタンをクリックすることで、PostgreSQLからのメタデータ同期が開始されます。