Pg_graphwright: 行レベルセキュリティを継承するPostgresナレッジグラフインデックス
Pg_graphwright は、PostgreSQL の行レベルセキュリティ(RLS)を継承しながらナレッジグラフを構築・検索できるオープンソースのインデックスツールです。既存のデータベーステーブルに対してグラフ構造を追加し、権限管理を維持したままノードやエッジの検索が可能になります。
背景メモ
- pg_graphwright は PostgreSQL の拡張機能で、データベース内の既存テーブルから自動的に**ナレッジグラフ(知識グラフ)**を構築するためのインデックスを提供する。
- ナレッジグラフとは、エンティティ(人・組織・モノ)とその関係をネットワーク構造で表現したデータモデル。従来のリレーショナルDBが行と列でデータを管理するのに対し、グラフ構造は「AはBと関係がある」という問い合わせに適している。
- このツールの特筆点は「行レベルセキュリティ(Row-Level Security / RLS)」を継承する点。PostgreSQLのRLS機能により、ユーザーごとに見える行を制限できるが、グラフ構造でもその権限設定がそのまま適用される。
- つまり、従来はグラフDBにデータを複製する際にセキュリティ設定を再実装する必要があったが、pg_graphwrightではPostgreSQL上で直接グラフインデックスを構築するため、既存のRLSポリシーを自動継承し、安全なマルチテナント知識グラフが実現できる。
- 開発元のHooFader社はPostgreSQLエコシステムに特化したツールを公開しており、このプロジェクトは同社のRust製グラフライブラリをベースにしている。