Usuarios de PostgreSQL

En esta página, se describe cómo funciona Cloud SQL con los usuarios y funciones de PostgreSQL. Las funciones de PostgreSQL te permiten controlar el acceso y las capacidades de los usuarios que acceden a la instancia de PostgreSQL.

Para obtener la documentación completa sobre las funciones de PostgreSQL, consulta la documentación de PostgreSQL. Para obtener más información sobre cómo crear y administrar usuarios de Cloud SQL, consulta Cómo crear y administrar usuarios.

Funciones y usuarios de PostgreSQL

Las funciones de PostgreSQL pueden ser una función única o pueden funcionar como un grupo de funciones. Un usuario es una función con la capacidad de acceder (la función tiene el atributo LOGIN). Debido a que todas las funciones que crea Cloud SQL tienen el atributo LOGIN, Cloud SQL usa los términos “función” y “usuario” de manera intercambiable. Sin embargo, si creas una función con el cliente psql, no siempre tiene el atributo LOGIN.

Todos los usuarios de PostgreSQL deben tener una contraseña. No puedes acceder a un usuario que no tiene contraseña.

Restricciones de superusuario

Debido a que Cloud SQL para PostgreSQL es un servicio administrado, restringe el acceso a ciertas tablas y procedimientos del sistema que requieren privilegios avanzados. En Cloud SQL, los clientes no pueden crear usuarios con atributos de superusuario ni tener acceso a ellos.

Usuarios de PostgreSQL predeterminados

Cuando creas una instancia nueva de Cloud SQL para PostgreSQL, se crea el usuario de administrador predeterminado postgres, pero no su contraseña. Debes establecer una contraseña para este usuario antes de poder acceder. Puedes hacerlo en Google Cloud Console o mediante el siguiente comando de gcloud:

gcloud sql users set-password postgres \
--instance=INSTANCE_NAME \
--password=PASSWORD

El usuario postgres es parte de la función cloudsqlsuperuser y tiene los siguientes atributos (privilegios): CREATEROLE, CREATEDB y LOGIN. No tiene los atributos SUPERUSER o REPLICATION.

Se crea un usuario cloudsqlimportexport predeterminado con el conjunto mínimo de privilegios necesarios para las operaciones de importación y exportación de CSV. Puedes crear tus propios usuarios para realizar estas operaciones. Sin embargo, si no lo haces, se usará el usuario cloudsqlimportexport predeterminado. El usuario cloudsqlimportexport es un usuario del sistema, y los clientes no pueden usarlo de forma directa.

Usuarios de IAM de Cloud SQL para la autenticación de la base de datos de IAM

IAM está integrado en Cloud SQL en una característica llamada autenticación de base de datos de IAM. Cuando creas instancias con esta función, los usuarios de IAM pueden acceder a la instancia con su nombre de usuario y contraseña de IAM. La ventaja de usar la autenticación de la base de datos de IAM es que puedes usar las credenciales de IAM existentes de un usuario cuando le otorgas acceso a una base de datos. Cuando el usuario abandona la organización, su cuenta de IAM se suspende y quita su acceso de forma automática. Para obtener más información sobre la autenticación de la base de datos de IAM, consulta Descripción general de la autenticación de la base de datos de IAM.

Otros usuarios de PostgreSQL

Puedes crear otros usuarios de PostgreSQL o funciones. Todos los usuarios que crees con Cloud SQL se crean como parte de la función cloudsqlsuperuser y tienen el mismo conjunto de atributos que el usuario postgres: CREATEROLE, CREATEDB y LOGIN. Puedes cambiar los atributos de cualquier usuario mediante el comando ALTER ROLE.

Si creas un usuario nuevo con el cliente psql, puedes asociarlo con una función diferente o asignarle atributos diferentes.

¿Qué sigue?