Re: schema privileges and drop role

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Matt Zagrabelny <mzagrabe(at)d(dot)umn(dot)edu>
Cc: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, "pgsql-general(at)postgresql(dot)org >> PG-General Mailing List" <pgsql-general(at)postgresql(dot)org>
Subject: Re: schema privileges and drop role
Date: 2024-06-25 01:08:59
Message-ID: 1231689.1719277739@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Matt Zagrabelny <mzagrabe(at)d(dot)umn(dot)edu> writes:
> On Mon, Jun 24, 2024 at 7:03 PM Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
> wrote:
>> "A role cannot be removed if it is still referenced in any database of
>> the cluster; an error will be raised if so. Before dropping the role,
>> you must drop all the objects it owns (or reassign their ownership) and
>> revoke any privileges the role has been granted on other objects. The
>> REASSIGN OWNED and DROP OWNED commands can be useful for this purpose;
>> see Section 22.4 for more discussion."

> Cool. I gave it a try, but came up with the same error:

> test_db=# REASSIGN OWNED by legacy_owner TO new_owner;
> REASSIGN OWNED
> Time: 0.212 ms
> test_db=# drop role legacy_owner;
> ERROR: role "legacy_owner" cannot be dropped because some objects depend
> on it

You need to do DROP OWNED as well to get rid of those privileges.
REASSIGN OWNED only changes the ownership of ownable objects.

> I'd still like to see how to list the "privileges for schema
> public",

"\dn+ public" in psql would do that.

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Kashif Zeeshan 2024-06-25 04:06:56 Re: PostgreSQL Community Enquire !
Previous Message Matt Zagrabelny 2024-06-25 00:43:58 Re: schema privileges and drop role