Además de los usuarios y roles predeterminados que vienen con 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 nuevo con el cliente psql
, puedes asociarlo con un rol diferente o asignarle privilegios diferentes.
Antes de comenzar
Para usar los comandos de PostgreSQL y administrar usuarios en un clúster, necesitas lo siguiente:
- Acceso al cliente de
psql
- Acceso al usuario de la base de datos
postgres
o a otro usuario con los privilegios administrativos adecuados
Crea un usuario de base de datos
Para crear un usuario de base de datos que se autentique directamente con la base de datos usando un nombre de usuario y una contraseña (también conocido como autenticación integrada), usa el siguiente comando:
CREATE USER USERNAME WITH PASSWORD 'PASSWORD';
Reemplaza lo siguiente:
USERNAME
: Es el nombre de usuario del rol del usuario.PASSWORD
: Es la contraseña nueva que se asignará al rol de usuario.
Para crear un usuario de base de datos que use Identity and Access Management para la autenticación, consulta Administra la autenticación de IAM.
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
.
Otorga roles a un usuario de la base de datos
Para otorgar roles a un usuario de la base de datos, usa el siguiente comando:
GRANT ROLE to USERNAME;
Reemplaza lo siguiente:
ROLE
: Es el rol que se le otorgará al usuario de la base de datos.PASSWORD
: Es la contraseña nueva que se asignará al rol de usuario.
Para otorgarle privilegios de superusuario a un usuario, otórgale la función alloydbsuperuser
.
Cambia la contraseña de un usuario de la base de datos
Para establecer una contraseña nueva para un usuario estándar de la base de datos de PostgreSQL, usa el siguiente comando:
ALTER USER USERNAME WITH PASSWORD 'PASSWORD';
Reemplaza lo siguiente:
USERNAME
: Es el nombre de usuario del usuario de la base de datos.PASSWORD
: Es la contraseña nueva que se asignará al rol de usuario.
No puedes cambiar ni establecer 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 Conéctate con una cuenta de IAM.
Para obtener más información sobre cómo cambiar la contraseña de un usuario, consulta ALTER ROLE
.
Cómo revocar un rol de un usuario de la base de datos
Para revocar un privilegio otorgado previamente a uno o más roles, o para revocar la membresía de un usuario en un rol, usa el siguiente comando:
REVOKE ROLE FROM USERNAME;
Para quitar los privilegios de superusuario de un usuario, revoca el rol alloydbsuperuser
de ese usuario.
Cómo ver una lista de usuarios de la base de datos
Para ver una tabla de todos los usuarios de la base de datos y sus membresías de grupo, usa el siguiente comando:
\du
Borrar un usuario de la base de datos
Antes de borrar un usuario, debes quitarle todos los objetos que posee o reasignar su propiedad, y revocar todos los privilegios que se le hayan otorgado al rol en otros objetos.
Para borrar un usuario, usa el siguiente comando:
DROP ROLE USERNAME;