メタデータを同期する(PostgreSQL 7.4~)

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ネットワーク環境に応じた適切な接続情報を指定してください。
  • 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への接続に成功すると、メタデータを同期するスキーマを選択できるようになります。

同期したいメタデータが含まれるスキーマを選択してください。

データソース-SQLServer2

6. メタデータの同期実行

スキーマ選択後、データソース画面の「メタデータ」タブに移動し、「メタデータ同期」ボタンをクリックすることで、PostgreSQLからのメタデータ同期が開始されます。