title | summary | toc |
---|---|---|
ALTER ROLE |
The ALTER ROLE statement can be used to add or change a role's password. |
true |
The ALTER ROLE
statement can be used to add, change, or remove a role's password and to change the privileges for a role.
{{site.data.alerts.callout_info}}
Since the keywords ROLE
and USER
can now be used interchangeably in SQL statements for enhanced Postgres compatibility, ALTER ROLE
is now an alias for ALTER USER
.
{{site.data.alerts.end}}
- Password creation and alteration is supported only in secure clusters.
To alter other roles, the role must be a member of the admin
role or have the CREATEROLE
parameter set.
Parameter | Description |
---|---|
name |
The name of the role whose role options you want to alter. |
CREATELOGIN /NOCREATELOGIN |
Allow or disallow the role to manage authentication using the WITH PASSWORD , VALID UNTIL , and LOGIN/NOLOGIN parameters. By default, the parameter is set to NOCREATELOGIN for all non-admin roles. |
LOGIN /NOLOGIN |
The LOGIN parameter allows a role to login with one of the client authentication methods. Setting the parameter to NOLOGIN prevents the role from logging in using any authentication method. |
password |
Let the role authenticate their access to a secure cluster using this new password. Passwords should be entered as a string literal. For compatibility with PostgreSQL, a password can also be entered as an identifier. To prevent a role from using password authentication and to mandate certificate-based client authentication, set the password as NULL . |
VALID UNTIL |
The date and time (in the timestamp format) after which the password is not valid. |
CREATEROLE /NOCREATEROLE |
Allow or disallow the role to create, alter, and drop other non-admin roles. By default, the parameter is set to NOCREATEROLE for all non-admin roles. |
CREATEDB /NOCREATEDB |
Allow or disallow the role to create or rename a database. The role is assigned as the owner of the database. By default, the parameter is set to NOCREATEDB for all non-admin roles. |
CONTROLJOB /NOCONTROLJOB |
Allow or disallow the role to pause, resume, and cancel jobs. Non-admin roles cannot control jobs created by admins. By default, the parameter is set to NOCONTROLJOB for all non-admin roles. |
CANCELQUERY /NOCANCELQUERY |
Allow or disallow the role to cancel queries and sessions of other roles. Without this privilege, roles can only cancel their own queries and sessions. Even with this privilege, non-admins cannot cancel admin queries or sessions. This option should usually be combined with VIEWACTIVITY so that the role can view other roles' query and session information. By default, the parameter is set to NOCANCELQUERY for all non-admin roles. |
VIEWACTIVITY /NOVIEWACTIVITY |
Allow or disallow a role to see other roles' queries and sessions using SHOW QUERIES , SHOW SESSIONS , and the Statements and Transactions pages in the Admin UI. Without this privilege, the SHOW commands only show the role's own data and the Admin UI pages are unavailable. By default, the parameter is set to NOVIEWACTIVITY for all non-admin roles. |
CONTROLCHANGEFEED /NOCONTROLCHANGEFEED |
Allow or disallow the role to run CREATE CHANGEFEED on tables they have SELECT privileges on. By default, the parameter is set to NOCONTROLCHANGEFEED for all non-admin roles. |
MODIFYCLUSTERSETTING /NOMODIFYCLUSTERSETTING |
Allow or disallow the role to to modify the cluster settings with the sql.defaults prefix. By default, the parameter is set to NOMODIFYCLUSTERSETTING for all non-admin roles. |
{{site.data.alerts.callout_info}}
The following statements are run by the root
user that is a member of the admin
role and has ALL
privileges.
{{site.data.alerts.end}}
root@:26257/defaultdb> ALTER ROLE carl WITH LOGIN PASSWORD 'An0ther$tr0nGpassW0rD' VALID UNTIL '2021-10-10';
The following statement prevents the user from using password authentication and mandates certificate-based client authentication:
{% include copy-clipboard.html %}
root@:26257/defaultdb> ALTER ROLE carl WITH PASSWORD NULL;
root@:26257/defaultdb> ALTER ROLE carl WITH CREATEROLE;
root@:26257/defaultdb> ALTER ROLE carl WITH CREATELOGIN;
root@:26257/defaultdb> ALTER ROLE carl WITH CREATEDB;
root@:26257/defaultdb> ALTER ROLE carl WITH CONTROLJOB;
root@:26257/defaultdb> ALTER ROLE carl WITH CANCELQUERY VIEWACTIVITY;
root@:26257/defaultdb> ALTER ROLE carl WITH CONTROLCHANGEFEED;
root@:26257/defaultdb> ALTER ROLE carl WITH MODIFYCLUSTERSETTING;