Charmed PostgreSQL Tutorial | 4. Manage passwords

Charmed PostgreSQL VM Tutorial > 4. Manage passwords

Manage passwords

When we accessed PostgreSQL earlier in this tutorial, we needed to use a password manually. Passwords help to secure our database and are essential for security. Over time, it is a good practice to change the password frequently.

In this section, we will go through setting and changing the password for the admin user.

Summary


Retrieve the operator password

The operator’s password can be retrieved by running the get-password action on the Charmed PostgreSQL VM application:

juju run postgresql/leader get-password

Running the command should output:

unit-postgresql-0:
  UnitId: postgresql/0
  id: "14"
  results:
    operator-password: eItxBiOYeMf7seSv
  status: completed
  timing:
    completed: 2023-03-20 09:17:51 +0000 UTC
    enqueued: 2023-03-20 09:17:49 +0000 UTC
    started: 2023-03-20 09:17:50 +0000 UTC

Rotate the operator password

You can change the operator’s password to a new random password by entering:

juju run postgresql/leader set-password

Running the command should output:

unit-postgresql-0:
  UnitId: postgresql/0
  id: "16"
  results:
    operator-password: npGdNGNGVtu7SO50
  status: completed
  timing:
    completed: 2023-03-20 09:18:11 +0000 UTC
    enqueued: 2023-03-20 09:18:08 +0000 UTC
    started: 2023-03-20 09:18:10 +0000 UTC

The status: completed element in the output above indicates that the password has been successfully updated. The new password should be different from the previous password.

Set a new password

You can set a specific password for any user by running the set-password juju action on the leader unit.

…for the operator user

To set a manual password for the operator/admin user, run the following command:

juju run postgresql/leader set-password password=<password>

where <password> is your password of choice.

Example output:

unit-postgresql-0:
  UnitId: postgresql/0
  id: "18"
  results:
    operator-password: my-password
  status: completed
  timing:
    completed: 2023-03-20 09:20:06 +0000 UTC
    enqueued: 2023-03-20 09:20:04 +0000 UTC
    started: 2023-03-20 09:20:05 +0000 UTC

…for another user

To set a manual password for another user, run the following command:

juju run postgresql/leader set-password username=my-user password=my-password

Read more about internal operator users here.

Next step: 5. Integrate with other applications