2

I am unable to drop user as I am getting default privileges error.

postgres=# drop user xyz;
ERROR: role "xyz" cannot be dropped because some objects depend on it
DETAIL: owner of default privileges on new functions belonging to role xyz

then I checked default privileges in database,

 postgres=# \ddp
Default access privileges
Owner | Schema | Type | Access privileges
---- -+------- +----------+-------
xyz | | function |

Could you please let me know how to revoke this default privileges?

Erwin Brandstetter
186k28 gold badges463 silver badges636 bronze badges
asked Mar 9, 2022 at 11:56

2 Answers 2

4

You have to grant the "default" default privileges:

ALTER DEFAULT PRIVILEGES FOR ROLE xyz GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE xyz GRANT EXECUTE ON FUNCTIONS TO xyz;

Then you should be able to drop the role.

answered Mar 9, 2022 at 12:05
0
1

This is the safe sequence of commands to drop a role:

Run in every involved database of the DB cluster.

REASSIGN OWNED BY xyz TO postgres;
DROP OWNED BY xyz;

DROP OWNED also gets rid of all privileges and default privileges!

Finally:

DROP ROLE xyz;

More detailed explanation:

answered Mar 10, 2022 at 5:25

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.