DROP USER v17
Name
DROP USER
— Remove a database user account.
Synopsis
Description
DROP USER
removes the specified user. You must be a superuser to drop a superuser. To drop non-superusers, you need the CREATEROLE
privilege.
You can't remove a user if any database of the cluster references it. Before dropping the user, you must drop all the objects it owns or reassign their ownership and revoke any privileges the user was granted.
However, you don't need to remove role memberships involving the user. DROP USER
revokes any memberships of the target user in other roles and of other roles in the target user. The other roles aren't dropped or otherwise affected.
Alternatively, if the only objects owned by the user belong in a schema that's owned by the user and has the same name as the user, you can specify the CASCADE
option. In this case, the issuer of the DROP USER name CASCADE
command must be a superuser. The named user, the schema, and all objects in the schema are deleted.
Parameters
name
The name of the user to remove.
CASCADE
If specified, drops the schema owned by and with the same name as the user as long as there are no other dependencies on the user or the schema. It also drops all objects owned by the user belonging to the schema.
Examples
Drop a user account named john
that owns no objects and doesn't have privileges on any other objects:
Drop the user account john
that doesn't have privileges on any objects. The account also doesn't own any objects outside of a schema named john
that's owned by the user john
: