DROP USER removes the specified user. It does not remove tables, views, or other objects owned by the user. If the user owns any database, an error is raised.
PostgreSQL includes a program dropuser that has the same functionality as this command (in fact, it calls this command) but can be run from the command shell.
To drop a user who owns a database, first drop the database or change its ownership.
It is unwise to drop a user who either owns any database objects or has any granted permissions on objects. Currently, this is only enforced for the case of owners of databases, but it is likely that future versions of PostgreSQL will check other cases.
The DROP USER statement is a PostgreSQL extension. The SQL standard leaves the definition of users to the implementation.
I had a problem after creating a user with the name Wilma. While attempting the statement:
DROP USER Wilma;
I would get an error that said the user wilma did not exist.
I found that I had to use " " around the user name if it had any capital letters in it. So this worked:
DROP USER "Wilma"
Hope this helps someone