Crear y administrar usuarios

En esta página, se describe cómo habilitar y usar la autenticación integrada de Cloud SQL.

Para obtener una descripción general, consulta Autenticación de la base de datos integrada de Cloud SQL.

Antes de crear usuarios

  1. Crea una instancia de Cloud SQL. Para obtener más información, consulta cómo Crear instancias.
  2. Habilita las políticas de contraseñas para la instancia. Para obtener más información, consulta Políticas de contraseñas de instancia.
  3. Si planeas usar el cliente de administración de tu base de datos para administrar usuarios, haz lo siguiente:

    1. Conecta el cliente a tu instancia. Consulta Opciones de conexión para aplicaciones externas.

    2. Establece una contraseña para configurar el usuario predeterminado en la instancia. Consulta Establece una contraseña para la cuenta de usuario predeterminada.

Establece una contraseña para la cuenta del usuario predeterminado

Cuando creas una instancia de Cloud SQL nueva, debes establecer una contraseña para la cuenta de usuario predeterminada antes de poder conectarte a la instancia.

El usuario predeterminado de Cloud SQL para PostgreSQL es postgres.

Console

  1. En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Selecciona Usuarios en el menú de navegación de SQL.
  4. Busca el usuario postgres y selecciona Cambiar contraseña en el menú de más acciones Ícono de más acciones.
  5. Proporciona una contraseña segura que puedas recordar y haz clic en Aceptar.

gcloud

Usa el comando gcloud sql users set-password de la siguiente manera a fin de configurar la contraseña para el usuario predeterminado.

Reemplaza INSTANCE_NAME por el nombre de la instancia antes de ejecutar el comando.

gcloud sql users set-password postgres \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

Para actualizar la contraseña de la cuenta de usuario predeterminada, usa una solicitud PUT con el método users:update.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • instance-id: el ID de instancia deseado
  • user-id: el ID del usuario
  • password: la contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Para actualizar la contraseña de la cuenta de usuario predeterminada, usa una solicitud PUT con el método users:update.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • instance-id: el ID de instancia deseado
  • user-id: el ID del usuario
  • password: la contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Crea un usuario

Después de configurar la cuenta de usuario predeterminada, puedes crear otros usuarios.

Cuando creas un usuario integrado, puedes asignarle uno o más roles de base de datos.

Para asignar un rol de base de datos personalizado a un usuario, primero debes crear el rol en la base de datos de PostgreSQL. Para crear un rol en PostgreSQL, consulta Roles de base de datos.

Console

  1. En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Selecciona Usuarios en el menú de navegación de SQL.
  4. Haz clic en Agregar cuenta de usuario.

    En la página Agrega una cuenta de usuario a la instancia instance_name, puedes elegir si el usuario se autentica con el método de base de datos integrado (nombre de usuario y contraseña) o como usuario de IAM.

  5. Selecciona Autenticación integrada (la opción predeterminada) y agrega la siguiente información:
    • Un nombre de usuario
    • Opcional. Una contraseña Proporciona una contraseña segura que puedas recordar.
  6. Haz clic en Agregar.

Si creas un usuario de PostgreSQL que usa la autenticación integrada, se le otorga automáticamente el rol cloudsqlsuperuser. El usuario tiene los siguientes privilegios asociados a este rol: CREATEROLE, CREATEDB y LOGIN.

Si deseas cambiar los privilegios del usuario, puedes crear y asignar uno o más roles de base de datos personalizados de PostgreSQL cuando crees el usuario en Cloud SQL. Si asignas uno o más roles de base de datos personalizados cuando creas el usuario en Cloud SQL, no se le otorga el rol cloudsqlsuperuser.

Si necesitas cambiar los atributos de estos usuarios, usa el comando ALTER ROLE en el cliente psql. No todos los atributos se pueden modificar con ALTER ROLE. Dentro de las excepciones, se incluyen las funciones NOSUPERUSER y NOREPLICATION.

Para obtener más información sobre estas cuentas de usuario y privilegios, consulta Otras cuentas de usuario de PostgreSQL.

gcloud

Para crear un usuario, usa el comando gcloud sql users create.

Reemplaza lo siguiente:

  • USER_NAME: El nombre de usuario
  • INSTANCE_NAME: El nombre de la instancia.
  • PASSWORD: la contraseña del usuario
  • ROLE_1, ROLE_2, …, ROLE_N: Opcional. Rol o roles de la base de datos que se asignarán al usuario.
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD \
--database-roles=ROLE_1, ROLE_2, ..., ROLE_N

Si creas un usuario de PostgreSQL que usa la autenticación integrada, se le otorga automáticamente el rol cloudsqlsuperuser. El usuario tiene los siguientes privilegios asociados a este rol: CREATEROLE, CREATEDB y LOGIN.

Si deseas cambiar los privilegios del usuario, puedes crear y asignar uno o más roles de base de datos personalizados de PostgreSQL cuando crees el usuario en Cloud SQL. Si asignas uno o más roles de base de datos personalizados cuando creas el usuario en Cloud SQL, no se le otorga el rol cloudsqlsuperuser.

Si necesitas cambiar los atributos de estos usuarios, usa el comando ALTER ROLE en el cliente psql. No todos los atributos se pueden modificar con ALTER ROLE. Dentro de las excepciones, se incluyen las funciones NOSUPERUSER y NOREPLICATION.

Para obtener más información sobre estas cuentas de usuario y privilegios, consulta Otras cuentas de usuario de PostgreSQL.

Los límites de longitud del nombre de usuario son los mismos en Cloud SQL que en PostgreSQL local.

Cuando creas un usuario, puedes agregar parámetros de política de contraseñas de usuario.

Terraform

Para crear un usuario, usa un recurso de Terraform.

resource "random_password" "pwd" {
  length  = 16
  special = false
}

resource "google_sql_user" "user" {
  name     = "user"
  instance = google_sql_database_instance.default.name
  password = random_password.pwd.result
}

Aplique los cambios

Para aplicar tu configuración de Terraform en un proyecto de Google Cloud , completa los pasos de las siguientes secciones.

Prepara Cloud Shell

  1. Inicia Cloud Shell
  2. Establece el proyecto Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.

Prepara el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión .tf, por ejemplo, main.tf. En este instructivo, el archivo se denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.

    Copia el código de muestra en el main.tf recién creado.

    De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.

  3. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo debes hacerlo una vez por directorio.
    terraform init

    De manera opcional, incluye la opción -upgrade para usar la última versión del proveedor de Google:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
    terraform plan

    Corrige la configuración según sea necesario.

  2. Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe yes cuando se te solicite:
    terraform apply

    Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.

  3. Abre tu proyecto Google Cloud para ver los resultados. En la consola de Google Cloud , navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.

Borra los cambios

Para borrar tus cambios, haz lo siguiente:

  1. Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento deletion_protection en false.
    deletion_protection =  "false"
  2. Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa yes cuando se te solicite:
    terraform apply
  1. Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa yes cuando se te solicite:

    terraform destroy

REST v1

Para crear un usuario, usa una solicitud POST con el método users:insert.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • INSTANCE_ID: El ID de la instancia
  • USER_ID: El ID del usuario
  • PASSWORD: la contraseña del usuario
  • ROLE_1, ROLE_2, …, ROLE_N: Opcional. Rol o roles de la base de datos que se asignarán al usuario

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "databaseRoles": [
    "ROLE_1",
    "ROLE_2"
  ]
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Si creas un usuario de PostgreSQL que usa la autenticación integrada, se le otorga automáticamente el rol cloudsqlsuperuser. El usuario tiene los siguientes privilegios asociados a este rol: CREATEROLE, CREATEDB y LOGIN.

Si deseas cambiar los privilegios del usuario, puedes crear y asignar uno o más roles de base de datos personalizados de PostgreSQL cuando crees el usuario en Cloud SQL. Si asignas uno o más roles de base de datos personalizados cuando creas el usuario en Cloud SQL, no se le otorga el rol cloudsqlsuperuser.

Si necesitas cambiar los atributos de estos usuarios, usa el comando ALTER ROLE en el cliente psql. No todos los atributos se pueden modificar con ALTER ROLE. Dentro de las excepciones, se incluyen las funciones NOSUPERUSER y NOREPLICATION.

Para obtener más información sobre estas cuentas de usuario y privilegios, consulta Otras cuentas de usuario de PostgreSQL.

Los límites de longitud del nombre de usuario son los mismos en Cloud SQL que en PostgreSQL local.

Cuando creas un usuario, puedes agregar parámetros de política de contraseñas de usuario.

REST v1beta4

Para crear un usuario, usa una solicitud POST con el método users:insert.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • INSTANCE_ID: El ID de la instancia
  • USER_ID: El ID del usuario
  • PASSWORD: la contraseña del usuario
  • ROLE_1, ROLE_2, …, ROLE_N: Opcional. Rol o roles de la base de datos que se asignarán al usuario

Método HTTP y URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "databaseRoles": [
    "ROLE_1",
    "ROLE_2"
  ]
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Si creas un usuario de PostgreSQL que usa la autenticación integrada, se le otorga automáticamente el rol cloudsqlsuperuser. El usuario tiene los siguientes privilegios asociados a este rol: CREATEROLE, CREATEDB y LOGIN.

Si deseas cambiar los privilegios del usuario, puedes crear y asignar uno o más roles de base de datos personalizados de PostgreSQL cuando crees el usuario en Cloud SQL. Si asignas uno o más roles de base de datos personalizados cuando creas el usuario en Cloud SQL, no se le otorga el rol cloudsqlsuperuser.

Si necesitas cambiar los atributos de estos usuarios, usa el comando ALTER ROLE en el cliente psql. No todos los atributos se pueden modificar con ALTER ROLE. Dentro de las excepciones, se incluyen las funciones NOSUPERUSER y NOREPLICATION.

Para obtener más información sobre estas cuentas de usuario y privilegios, consulta Otras cuentas de usuario de PostgreSQL.

Los límites de longitud del nombre de usuario son los mismos en Cloud SQL que en PostgreSQL local.

Cuando creas un usuario, puedes agregar parámetros de política de contraseñas de usuario.

Cliente psql

  1. Cuando aparezca el cuadro psql, crea el usuario:
      CREATE USER USER_NAME
          WITH PASSWORD PASSWORD
          ATTRIBUTE1
          ATTRIBUTE2...;
      

    Escríbala cuando se le indique.

    Para obtener más información acerca de los atributos de la función, consulta la documentación de PostgreSQL.

  2. Muestra la tabla de usuarios para confirmar la creación del usuario:
      SELECT * FROM pg_roles;
      

Establece una política de contraseñas de usuario

Puedes configurar una política de contraseñas con el tipo de autenticación integrado.

gcloud

Para establecer la política de la contraseña del usuario, usa el comando gcloud sql users set-password-policy.

Reemplaza lo siguiente:

  • USER_NAME: El nombre de usuario
  • INSTANCE_NAME: El nombre de la instancia
  • HOST: El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host (%).
  • PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS: (Opcional) La cantidad de veces que un usuario puede probar la contraseña de manera incorrecta antes de que se bloquee la cuenta. Usa --password-policy-enable-failed-attempts-check para habilitar la verificación y --no-password-policy-enable-failed-attempts-check para inhabilitarla.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION: Especifica la cantidad de días después de los cuales vence la contraseña y el usuario debe crear una nueva (opcional).
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--password-policy-enable-failed-attempts-check \
--password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \
--password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION

Para quitar una política de contraseñas de usuario, usa el parámetro --clear-password-policy.

gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

Para ver la política de contraseñas del usuario, consulta Mostrar lista de usuarios.

REST v1

Para establecer una política de contraseñas de usuario, usa una solicitud PUT con el método users:update.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • INSTANCE_ID: El ID de la instancia
  • USER_ID: El ID del usuario
  • PASSWORD: La contraseña del usuario
  • FAILED_ATTEMPTS_CHECK: Configúralo como true para habilitar una verificación de la cantidad de intentos de acceso fallidos después de que se bloquea la cuenta
  • NUMBER_OF_ATTEMPTS: La cantidad de intentos de acceso fallidos después de la cual se bloquea la cuenta
  • PASSWORD_EXPIRATION_DURATION: La cantidad de días después de los cuales vence la contraseña y el usuario debe crear una nueva

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
      }
    },
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Para ver la política de contraseñas del usuario, consulta Mostrar lista de usuarios.

REST v1beta4

Para establecer una política de contraseñas de usuario, usa una solicitud PUT con el método users:update.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • INSTANCE_ID: El ID de la instancia
  • USER_ID: El ID del usuario
  • PASSWORD: La contraseña del usuario
  • FAILED_ATTEMPTS_CHECK: Configúralo como true para habilitar una verificación de la cantidad de intentos de acceso fallidos después de que se bloquea la cuenta
  • NUMBER_OF_ATTEMPTS: La cantidad de intentos de acceso fallidos después de la cual se bloquea la cuenta
  • PASSWORD_EXPIRATION_DURATION: La cantidad de días después de los cuales vence la contraseña y el usuario debe crear una nueva

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
      }
    },
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Para ver la política de contraseñas del usuario, consulta Mostrar lista de usuarios.

Mostrar lista de usuarios

Console

  1. En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Selecciona Usuarios en el menú de navegación de SQL.

gcloud

Usa el comando gcloud sql users list a fin de enumerar los usuarios para esta instancia:

gcloud sql users list \
--instance=INSTANCE_NAME

El comando muestra el Name, el Host y la autenticación Type para cada usuario.

Además, para el tipo de autenticación integrado, se muestran la configuración y el estado de la política de contraseña. Por ejemplo:

    NAME    HOST    TYPE        PASSWORD_POLICY
    user1           BUILT_IN    {'allowedFailedAttempts': 2,
                                 'enableFailedAttemptsCheck': True,
                                 'passwordExpirationDuration': '7d',
                                 'status': {
                                   'locked': True,
                                   'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z'
                                 }
                                }
   

REST v1

Para enumerar los usuarios definidos de una instancia, usa una solicitud GET con el método users:list.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • instance-id: el ID de instancia deseado

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Si se estableció una política de contraseñas de usuario, la sección items de la respuesta incluye una sección passwordPolicy. En el siguiente ejemplo de código, se muestra la sección passwordPolicy.

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d"
    }
  },
  ...
}
  

REST v1beta4

Para enumerar los usuarios definidos de una instancia, usa una solicitud GET con el método users:list.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • instance-id: el ID de instancia deseado

Método HTTP y URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Si se estableció una política de contraseñas de usuario, la sección items de la respuesta incluye una sección passwordPolicy. En el siguiente ejemplo de código, se muestra la sección passwordPolicy.

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d"
    }
  },
  ...
}
  

Cliente psql

En el mensaje psql, muestra una lista de usuarios de PostgreSQL:

SELECT * FROM pg_roles;

Cómo agregar roles de base de datos a un usuario existente

Después de crear un usuario integrado, puedes asignarle roles adicionales. Estos roles se agregan a los roles existentes y no reemplazan el conjunto de roles asignados a la cuenta de usuario.

Antes de asignar un rol a un usuario en Cloud SQL para PostgreSQL, el rol ya debe existir. Si usas un rol personalizado, primero debes crearlo en la base de datos de PostgreSQL.

Para crear un rol en PostgreSQL, consulta Roles de base de datos.

No puedes asignar ninguno de los roles del sistema predefinidos que se enumeran en Roles y usuarios del sistema de Cloud SQL a los usuarios existentes de PostgreSQL, excepto el rol cloudsqlsuperuser.

gcloud

Para asignar roles a un usuario, usa el comando gcloud sql users assign-roles.

gcloud sql users assign-roles USER_NAME \
--instance=INSTANCE_NAME \
--type=BUILT-IN \
--database-roles=ROLE_1, ROLE_2, ..., ROLE_N

Reemplaza lo siguiente:

  • USER_NAME: el nombre de usuario
  • INSTANCE_NAME: El nombre de la instancia.
  • ROLE_1, ROLE_2, …, ROLE_N: El rol o los roles de la base de datos que se asignarán al usuario.

REST v1

Para actualizar un usuario, usa una solicitud PUT con el método users:update.

Cuando asignas roles de base de datos, puedes actualizar los parámetros de la política de contraseñas de usuario.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto.
  • INSTANCE_ID: es el ID de instancia deseado
  • USER_ID: El ID del usuario
  • ROLE_1, ROLE_2…, ROLE_N: El rol o los roles de la base de datos que se asignarán al usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ]
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Para actualizar un usuario, usa una solicitud PUT con el método users:update.

Cuando asignas roles de base de datos, puedes actualizar los parámetros de la política de contraseñas de usuario.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto.
  • INSTANCE_ID: es el ID de instancia deseado
  • USER_ID: El ID del usuario
  • ROLE_1, ROLE_2, …, ROLE_N: El rol o los roles de la base de datos que se asignarán al usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ]
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Reemplaza los roles de la base de datos para un usuario existente

Si quieres reemplazar o quitar roles de la base de datos del usuario, debes revocar todos sus roles existentes y especificar roles de la base de datos nuevos, si corresponde.

De forma predeterminada, cuando creas un usuario integrado de PostgreSQL, se le otorga automáticamente el rol de cloudsqlsuperuser. Si no quieres que un usuario conserve el rol de cloudsqlsuperuser, revoca los roles existentes del usuario.

gcloud

Para reemplazar los roles de la base de datos de un usuario, revoca los roles existentes y asigna roles nuevos. Para reemplazar los roles de la base de datos de un usuario, usa el siguiente comando gcloud sql users assign-roles.

gcloud sql users assign-roles USER_NAME \
--instance=INSTANCE_NAME \
--database-roles=ROLE_1,ROLE_2 \
--revoke-existing-roles

Reemplaza lo siguiente:

  • USER_NAME: el nombre de usuario
  • HOST: El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host (%).
  • INSTANCE_NAME: El nombre de la instancia.
  • ROLE_1, ROLE_2: Son los roles de base de datos nuevos que se asignarán al usuario.

También puedes revocar los roles existentes de un usuario y no asignarle ninguno. Por ejemplo:

gcloud sql users assign-roles USER_NAME \
--instance=INSTANCE_NAME \
--database-roles= \
--revoke-existing-roles

REST v1

Para actualizar un usuario, usa una solicitud PUT con el método users:update.

Cuando reemplazas los roles de base de datos de un usuario, puedes actualizar los parámetros de la política de contraseñas de usuario en la misma solicitud a la API.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto.
  • INSTANCE_ID: es el ID de instancia deseado
  • USER_ID: El ID del usuario
  • ROLE_1, ROLE_2…, ROLE_N: Son los roles de base de datos nuevos que se asignarán al usuario. También puedes especificar una lista vacía.

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ],
  "revokeExistingRoles": true
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Para actualizar un usuario, usa una solicitud PUT con el método users:update.

Cuando reemplazas los roles de base de datos de un usuario, puedes actualizar los parámetros de la política de contraseñas de usuario en la misma solicitud a la API.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto.
  • INSTANCE_ID: es el ID de instancia deseado
  • USER_ID: El ID del usuario
  • ROLE_1, ROLE_2, …, ROLE_N: Son los roles de base de datos nuevos que se asignarán al usuario. También puedes especificar una lista vacía.

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ],
  "revokeExistingRoles": true
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Cambia una contraseña de usuario

Las contraseñas de usuario se pueden cambiar de una de las siguientes maneras.

Console

  1. En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Selecciona Usuarios en el menú de navegación de SQL.
  4. Haz clic en el ícono de más acciones Ícono de más acciones para el usuario que quieres actualizar.
  5. Selecciona Cambiar contraseña.
  6. Especifica una contraseña nueva.
  7. Haga clic en OK.

gcloud

Usa el comando gcloud sql users set-password para cambiar una contraseña.

Reemplaza lo siguiente:

  • USER_NAME: El nombre de usuario
  • INSTANCE_NAME: El nombre de la instancia
gcloud sql users set-password USER_NAME \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

Para cambiar una contraseña de usuario, usa una solicitud PUT con el método users:update.

La siguiente solicitud actualiza la contraseña para la cuenta de usuario user_name.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • instance-id: el ID de instancia deseado
  • user-id: el ID del usuario
  • password: La contraseña nueva del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Para cambiar una contraseña de usuario, usa una solicitud PUT con el método users:update.

La siguiente solicitud actualiza la contraseña para la cuenta de usuario user_name.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • instance-id: el ID de instancia deseado
  • user-id: el ID del usuario
  • password: La contraseña nueva del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Cliente psql

Cuando aparezca el cuadro psql, ejecuta el comando ALTER USER.
  1. Desbloquea al usuario.
    ALTER USER USER_NAME WITH LOGIN;
  2. Cambia la contraseña y, luego, ingrésala cuando se te solicite.
    ALTER USER USER_NAME WITH PASSWORD PASSWORD;

Si un usuario está bloqueado debido a la configuración de la política de contraseñas, cambia la contraseña para desbloquearlo. Asegúrate de que las contraseñas, cuando se modifiquen, cumplan con la política de contraseñas.

Quita una política de contraseñas de usuario

Puedes quitar una política de contraseñas de un usuario que tiene el tipo de autenticación integrado.

gcloud

Para quitar la política de contraseñas del usuario, usa el comando gcloud sql users set-password-policy y el parámetro --clear-password-policy.

Reemplaza lo siguiente:

  • USER_NAME: El nombre de usuario
  • INSTANCE_NAME: Es el nombre de la instancia.
  • HOST: El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host (%)
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

REST v1

Para quitar una política de contraseñas de usuario, usa una solicitud PUT con el método users:update.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • INSTANCE_ID: El ID de la instancia
  • USER_ID: El ID del usuario
  • PASSWORD: La contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

Para quitar una política de contraseñas de usuario, usa una solicitud PUT con el método users:update.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • INSTANCE_ID: El ID de la instancia
  • USER_ID: El ID del usuario
  • PASSWORD: La contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Quita un usuario

El usuario predeterminado puede quitar usuarios.

Antes de quitar 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.

Console

  1. En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Selecciona Usuarios en el menú de navegación de SQL.
  4. Haz clic en el ícono de más acciones Ícono de más acciones para el usuario que quieres quitar.
  5. Selecciona Quitar y, luego, vuelve a seleccionar Quitar.

gcloud

Usa el comando gcloud sql users delete para quitar un usuario.

Reemplaza lo siguiente:

  • USER_NAME: El nombre de usuario
  • INSTANCE_NAME: El nombre de la instancia
gcloud sql users delete USER_NAME \
--instance=INSTANCE_NAME

REST v1

En la solicitud que se muestra a continuación, se usa el método users:delete para borrar la cuenta de usuario especificada.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • INSTANCE_ID: el ID de instancia deseado
  • USERNAME: la dirección de correo electrónico del usuario o la cuenta de servicio

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

En la solicitud que se muestra a continuación, se usa el método users:delete para borrar la cuenta de usuario especificada.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • INSTANCE_ID: el ID de instancia deseado
  • USERNAME: la dirección de correo electrónico del usuario o la cuenta de servicio

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Cliente psql

  1. Cuando aparezca el cuadro psql, borra el usuario:
    DROP ROLE USER_NAME;

    Para obtener más información sobre la instrucción DROP ROLE, consulta la documentación de PostgreSQL.

Actualiza las propiedades de usuario

Para actualizar propiedades del usuario como los atributos, debes usar el cliente psql. Para obtener más información, consulta Funciones de base de datos en la documentación de PostgreSQL.

¿Qué sigue?