# How to Change a User to Superuser in PostgreSQL

> In PostgreSQL, the ALTER USER and ALTER ROLE statements are used along with the SUPERUSER attribute to change an ordinary user to a superuser.

A superuser account with broad privileges is required for system administration. Superusers in Postgres have access to high-level privileges beyond ordinary users. To create a superuser in Postgres, use the **CREATE ROLE** or **CREATE USER** statement with the **SUPERUSER** attribute. However, if you have already created a user without the SUPERUSER attribute, you can modify it using the **ALTER USER** or **ALTER ROLE** command.

This Postgres blog will teach you how to change a user to a superuser via practical examples. The below concepts will be covered in this blog post:

  * Create an Ordinary User
  * How to Change an Ordinary User to a Superuser Using ALTER USER Statement?
  * How to Change an Ordinary User to a Superuser Using ALTER ROLE Statement?



 **Create an Ordinary User**

Firstly, let’s create a user without SUPERUSER privileges using the CREATE USER command:
    
    
    CREATE USER Joe;

Run the \du command to verify the user creation:
    
    
    \du;

The above snippet shows that a user named “joe” has been created without the “ **SUPERUSER** ” attribute.

 **How to Change an Ordinary User to a Superuser Using ALTER USER Statement?**

To change an ordinary user to a superuser in Postgres, use the ALTER USER command with the SUPERUSER attribute:
    
    
    ALTER USER user_name WITH SUPERUSER;

In the above syntax, user_name represents a user to be altered, while the “WITH” option is used to specify the SUPERUSER attribute.

 **Example: How Do I Change an Ordinary User to Superuser in Postgres?**

Run the “ALTER USER” command using the “WITH” clause to change a user named “joe” to a superuser:
    
    
    ALTER USER joe WITH SUPERUSER;

Run the below command to check if the specified user has been changed to the superuser or not:
    
    
    \du;

The output snippet proves that the “joe” has been changed to a superuser successfully.

 **How to Change an Ordinary User to a Superuser Using ALTER ROLE Statement?**

To alter an existing role/user to a superuser, execute the ALTER ROLE statement with the SUPERUSER clause as follows:
    
    
    ALTER ROLE user_name
    WITH SUPERUSER;

In the above syntax, user_name represents a user to be altered, while the “WITH” option is used to specify the SUPERUSER attribute.

 **Example: How Do I Change an Ordinary User to Superuser in Postgres?**

Suppose we need to alter a user named “emp_limit” to the superuser. For this purpose, we will execute the **ALTER ROLE** command as follows:
    
    
    ALTER ROLE emp_limit 
    WITH SUPERUSER;

The targeted role has been altered successfully. Let’s verify it via the below command:
    
    
    \du;

The output authenticates the working of ALTER ROLE statement as it succeeded in changing an ordinary user to a superuser.

 **Conclusion**

In PostgreSQL, the **ALTER USER** and **ALTER ROLE** statements are used to change an ordinary user to a superuser. For this purpose, execute the ALTER USER or ALTER ROLE statement along with the **SUPERUSER** attribute. To specify a SUPERUSER attribute, the “WITH” option is used in PostgreSQL. This Postgres blog taught us how to change an ordinary user to a super user using ALTER USER and ALTER ROLE statements.

---
[View this page online](https://www.commandprompt.com/education/how-to-change-a-user-to-superuser-in-postgresql/)