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 postgresql.conf file contains the enable_kill_query parameter. 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.
  • In a multi-tenant scenario, the service user will also be deleted when you delete a user group. If you want to use CASCADE, set CASCADE for the service user as well. If any error is reported for one user, other users cannot be deleted either.
  • If the user has an error table specified when the GDS foreign table is created, the user cannot be deleted by specifying the CASCADE keyword in the DROP USER statement.
  • 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 postgresql.conf file contains the enable_kill_query parameter. 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