Updated on 2023-10-23 GMT+08:00

DROP USER

Function

DROP USER deletes a user and the schema with the same name as the user.

Precautions

  • CASCADE is used to delete the objects (excluding databases) that depend on the user. CASCADE cannot delete locked objects unless the objects are unlocked or the processes locking the objects are killed.
  • In GaussDB, the enable_kill_query configuration parameter exists in the postgresql.conf file. This parameter affects CASCADE.
    • If enable_kill_query is on and CASCADE is used, the statement automatically kills the processes locking dependent objects and then deletes the specified user.
    • If enable_kill_query is off and CASCADE is used, the statement waits until the processes locking dependent objects stop and then deletes the specified user.
  • If the dependent objects are other databases or reside in other databases, manually delete them before deleting the user from the current database. DROP USER cannot delete objects across databases.
  • Before deleting a user, you need to delete all the objects owned by the user and revoke the user's permissions on other objects. Alternatively, you can specify CASCADE to delete the objects owned by the user and the granted permissions.
  • If a data source depends on the user, the user cannot be deleted directly. You need to manually delete the data source first.

Syntax

DROP USER [ IF EXISTS ] user_name [, ...] [ CASCADE | RESTRICT ];

Parameter Description

  • IF EXISTS

    Reports a notice instead of an error if the specified user does not exist.

  • user_name

    Specifies the name of the user to be deleted.

    Value range: an existing username

  • CASCADE | RESTRICT
    • CASCADE: automatically deletes objects that depend on the user and revokes the permissions granted to the user.
    • RESTRICT: refuses to delete a user if the user has any dependent objects or has been granted permissions on other objects. This is the default value.

      In GaussDB, the enable_kill_query configuration parameter exists in the postgresql.conf file. This parameter affects CASCADE.

      • If enable_kill_query is on and CASCADE is used, the statement automatically kills the processes locking dependent objects and then deletes the specified user.
      • If enable_kill_query is off and CASCADE is used, the statement waits until the processes locking dependent objects stop and then deletes the specified user.

Examples

See Examples in CREATE USER.

Helpful Links

ALTER USER and CREATE USER.