サーバー上でスーパーユーザーとして定義されているロールからデータベースへの接続 (またはできればすべて) 権限を取り消す方法はありますか? 開発サーバーにはいくつかのデータベースがあります。そのうちの 1 つは共有されていますが、残りは 1 人の開発者のみが所有し、他の開発者の接続権限はありません。現在、すべての開発者はログイン オプションを持つスーパーユーザーです。
CREATE ROLE dev_name LOGIN
ENCRYPTED PASSWORD '...'
SUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION;
私は多くの方法でこれをやろうとしました:
REVOKE CONNECT ON DATABASE test_db FROM dev_name;
revoke select on all tables in schema public from dev_name;
そして、私がチェックしたように:
SELECT * FROM has_database_privilege('dev_name', 'test_db', 'connect');
まだtrueを返しました。
回避策を試し、接続制限を別の値に変更しましたが、最初にログインしたときでもスーパーユーザーは接続できました。
CONNECTION LIMIT = 1;
では、pg_hba をいじったり、他の開発者のスーパーユーザー ステータスを落としたりすることなく、これを行う機会はあるのでしょうか?