
私の postgres インスタンスには 2 つのロールがあります。役割1そして役割2。
スーパーユーザーとして以下の一連のコマンドを実行します。
GRANT CREATE on DATABASE database1 TO role1;
\c database1;
SET ROLE role1;
CREATE SCHEMA schema1;
SET ROLE "user who is super user";
GRANT USAGE on SCHEMA schema1 TO role2;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema1 TO role2;
次に、role1 を使用してスキーマ schema1 にテーブルを作成します。テーブルの所有者は role1 です。
何らかの理由で、role2 として database1 で \dt を実行しても、テーブルが表示されません。すべてのテーブルに対してすべての権限を持っているので、schema1 のテーブルは表示されるべきではないでしょうか?