I want to drop the user asd
from the DB. So, I've got two DBs: foo
and bar
and the user apparently has dependencies in both. The DBs have been created from the root user postgres
, but all tables and sequences inside have been created by users foo_migration
and bar_migration
respectively.
First I log in as the postgres
user to the foo
DB. When I try to drop the user, I get:
ERROR: role "asd" cannot be dropped because some objects depend on it
with details about privileges from multiple sequences, tables, the bar
DB and a few objects in the postgres
DB.
So, I try to clear things one by one (while still logged in as postgres
user in the foo
DB). I first try to REASSIGN OWNED BY asd TO foo_migration;
. This returns ERROR: permission denied
, which is weird because I'm logged in as the postgres
user. Anyway, then I try
REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM asd;
REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM asd;
and I get a bunch of WARNING: no privileges could be revoked
for all the sequences and tables that the user has rights on. I also try DROP OWNED BY asd;
which also ends in ERROR: permission denied
.
This was all unsuccessful, so I try logging in the postgres
DB as the postgres
user and perform the same steps. The REVOKE
commands execute successfully without warnings, but no permissions actually get changed/affected. The REASSIGN
and DROP OWNED BY
still result in ERROR: permission denied
.
The error messages are bare. There's no hints or details provided alongside with them.
I do not have the password for the asd
user, so I cannot try to log in with it and perform any actions.
Do you have any ideas of how to approach this? Do I need to look into some tables that show ownerships and go from there? Isn't the postgres
user the admin user that is "almighty" ?
postgres
is listed as FALSE forrolsuper
. The only TRUE one isrdsadmin
.