Además de los usuarios y roles predeterminados que incluye PostgreSQL, puedes crear otros usuarios o roles de PostgreSQL. Estos usuarios tienen el mismo conjunto de privilegios que el usuario postgres
:
CREATE ROLE
,
CREATEDB
y LOGIN
. Para obtener más información sobre estos privilegios, consulta CREATE ROLE
.
Puedes cambiar los privilegios de cualquier usuario con el comando ALTER ROLE
. Si creas un usuario con el cliente psql
, puedes asociarlo a otro rol o asignarle otros privilegios.
Antes de empezar
Para usar los comandos de PostgreSQL y gestionar los usuarios de un clúster, necesitas lo siguiente:
- Acceso al cliente
psql
- Acceso al usuario de la base de datos
postgres
u otro usuario con los privilegios de administrador adecuados
Crear un usuario de base de datos
Para crear un usuario de base de datos que se autentique directamente en la base de datos con un nombre de usuario y una contraseña (también conocida como autenticación integrada), usa el siguiente comando:
CREATE USER USERNAME WITH PASSWORD 'PASSWORD';
Haz los cambios siguientes:
USERNAME
: nombre de usuario del rol de usuario.PASSWORD
: la nueva contraseña que se asignará al rol de usuario.
Para crear un usuario de base de datos que utilice Gestión de Identidades y Accesos para autenticarse, consulta Gestionar la autenticación de Gestión de Identidades y Accesos.
Para obtener más información sobre cómo crear y definir usuarios de bases de datos, consulta CREATE
USER
.
Después de crear un usuario o un rol, puedes cambiar sus privilegios con el comando ALTER
ROLE
en el cliente psql
.
Asignar roles a un usuario de base de datos
Para asignar roles a un usuario de la base de datos, usa el siguiente comando:
GRANT ROLE to USERNAME;
Haz los cambios siguientes:
ROLE
: rol que se va a asignar al usuario de la base de datos.PASSWORD
: la nueva contraseña que se asignará al rol de usuario.
Para dar privilegios de superusuario a un usuario, concédele el rol alloydbsuperuser
.
Cambiar la contraseña de un usuario de base de datos
Para definir una contraseña nueva para un usuario estándar de la base de datos PostgreSQL, usa el siguiente comando:
ALTER USER USERNAME WITH PASSWORD 'PASSWORD';
Haz los cambios siguientes:
USERNAME
: nombre de usuario de la base de datos.PASSWORD
: la nueva contraseña que se asignará al rol de usuario.
No puedes cambiar ni definir la contraseña de un usuario basado en IAM, ya que estos usuarios no usan contraseñas para autenticarse. Para obtener más información, consulta Conectarse con una cuenta de gestión de identidades y accesos.
Para obtener más información sobre cómo cambiar la contraseña de un usuario, consulta ALTER ROLE
.
Revocar un rol de un usuario de base de datos
Para revocar un privilegio concedido anteriormente a uno o varios roles, o para revocar la pertenencia de un usuario a un rol, utiliza el siguiente comando:
REVOKE ROLE FROM USERNAME;
Para quitar los privilegios de superusuario de un usuario, revoca el rol alloydbsuperuser
de ese usuario.
Ver una lista de usuarios de la base de datos
Para ver una tabla con todos los usuarios de la base de datos y sus pertenencias a grupos, usa el siguiente comando:
\du
Eliminar un usuario de base de datos
Antes de eliminar un usuario, debe eliminar todos los objetos que le pertenezcan o reasignar su propiedad, así como revocar todos los privilegios que se le hayan concedido a la función en otros objetos.
Para eliminar un usuario, usa el siguiente comando:
DROP ROLE USERNAME;