複数のWebサイトからpostgreSQLのテーブルを一部だけ分離する

 postgreSQLを使っているphpのWebアプリを2つのサイトにして、テーブルの一部を共有し、その他は分離したいという要件があったので、Oracle歴が長かった筆者にとっては、別ユーザー作って、シノニム作ればいいじゃんと思いきや、postgreSQLにはシノニムは無い模様。。

 既にpublicとしてテーブルが作成されている状態なので、別ユーザーとそのユーザーのスキーマを作成し、分離したいテーブルのみをそのスキーマに作成、既存のテーブルを別ユーザーに対しアクセス権を付与するという形で何とかなりました。

まず、別ユーザーを作成し、DBに対する権限を付与します
CREATE USER anotheruser WITH PASSWORD ‘******’;
GRANT CONNECT ON DATABASE 既存DB TO anotheruser;
GRANT CREATE ON DATABASE 既存DB TO anotheruser;

共有するテーブル全てにアクセス権を付与します
GRANT ALL ON TABLE common_table1 TO anotheruser;
GRANT ALL ON TABLE common_table2 TO anotheruser;
・・・

作成したユーザーでログインし、ユーザー名と同名のスキーマを作成します
create schema anotheruser AUTHORIZATION anotheruser;
分離するテーブルをこのスキーマ上に作成します
create table anotheruser.devide_table
(id serial, ~

で、片方のWebサイト側DB設定を別ユーザーに変えて、要件通りの動きになりました。
postgreSQLにはサーチパス指定等があるようですが、スキーマ名とユーザー名が同一であれば、勝手に優先してくれるみたいでした。
という事はアクセス権付与はテーブル個別でなくALLでもよかったかも?