\dt を実行したときに、他のユーザーが所有する Postgres テーブルが表示されないのはなぜですか?

\dt を実行したときに、他のユーザーが所有する Postgres テーブルが表示されないのはなぜですか?

私の 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 のテーブルは表示されるべきではないでしょうか?

関連情報