Créer et gérer des utilisateurs

Cette page explique comment activer et utiliser l'authentification intégrée Cloud SQL.

Pour en savoir plus, consultez la page Authentification intégrée Cloud SQL pour les bases de données.

Avant de créer des utilisateurs

  1. Créer une instance Cloud SQL. Pour en savoir plus, consultez la page Créer des instances.
  2. Activez les règles de mot de passe pour l'instance. Pour en savoir plus, consultez la section Règles de mot de passe pour l'instance.
  3. Si vous prévoyez de gérer les utilisateurs à l'aide du client d'administration de votre base de données, procédez comme suit :

    1. Connectez le client à votre instance. Consultez la page Options de connexion pour les applications externes.

    2. Configurez l'utilisateur par défaut sur l'instance en définissant le mot de passe. Consultez Définir le mot de passe du compte utilisateur par défaut.

Définir le mot de passe du compte utilisateur par défaut

Lorsque vous créez une instance Cloud SQL, vous devez définir un mot de passe pour le compte utilisateur par défaut avant de pouvoir vous connecter à l'instance.

Avec Cloud SQL pour PostgreSQL, l'utilisateur par défaut est postgres.

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Utilisateurs.
  4. Recherchez l'utilisateur postgres et sélectionnez Modifier le mot de passe dans le menu "Autres actions" Icône Plus.
  5. Indiquez un mot de passe sécurisé facile à mémoriser, puis cliquez sur OK.

gcloud

Exécutez la commande gcloud sql users set-password comme suit pour définir le mot de passe de l'utilisateur par défaut.

Remplacez INSTANCE_NAME par le nom de l'instance avant d'exécuter la commande.

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

REST v1

Pour mettre à jour le mot de passe du compte utilisateur par défaut, exécutez une requête PUT avec la méthode users:update.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance souhaitée
  • user-id : ID de l'utilisateur
  • password : mot de passe de l'utilisateur

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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

Pour mettre à jour le mot de passe du compte utilisateur par défaut, exécutez une requête PUT avec la méthode users:update.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance souhaitée
  • user-id : ID de l'utilisateur
  • password : mot de passe de l'utilisateur

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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"
}

Créer un compte utilisateur

Après avoir configuré le compte utilisateur par défaut, vous pouvez créer d'autres utilisateurs.

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Utilisateurs.
  4. Cliquez sur Ajouter un compte utilisateur.

    Sur la page Ajouter un compte utilisateur à l'instance instance_name, vous pouvez choisir de vous authentifier avec la méthode de base de données intégrée (nom d'utilisateur et mot de passe) ou en tant qu'utilisateur IAM.

  5. Sélectionnez Authentification intégrée (valeur par défaut) et ajoutez les informations suivantes :
    • Un nom d'utilisateur
    • Facultatif. Un mot de passe Indiquez un mot de passe sécurisé facile à mémoriser.
  6. Cliquez sur Ajouter.

Les utilisateurs créés sur des instances à l'aide de la méthode d'authentification de Cloud SQL reçoivent automatiquement le rôle cloudsqlsuperuser et disposent des droits suivants associés à ce rôle : CREATEROLE, CREATEDB et LOGIN.

Si vous devez modifier les attributs de ces utilisateurs, utilisez la commande ALTER ROLE dans le client psql. Certains attributs ne peuvent pas être modifiés avec la commande ALTER ROLE. Les rôles NOSUPERUSER et NOREPLICATION figurent parmi les exceptions.

gcloud

Pour créer un utilisateur, utilisez la commande gcloud sql users create.

Remplacez les éléments suivants :

  • USER_NAME : nom de l'utilisateur.
  • INSTANCE_NAME : nom de l'instance
  • PASSWORD : mot de passe de l'utilisateur
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD

Les utilisateurs créés sur des instances à l'aide de la méthode d'authentification de Cloud SQL reçoivent automatiquement le rôle cloudsqlsuperuser et disposent des droits suivants associés à ce rôle : CREATEROLE, CREATEDB et LOGIN.

Si vous devez modifier les attributs de ces utilisateurs, utilisez la commande ALTER ROLE dans le client psql. Certains attributs ne peuvent pas être modifiés avec la commande ALTER ROLE. Les rôles NOSUPERUSER et NOREPLICATION figurent parmi les exceptions.

Les limites de longueur des noms d'utilisateur sont identiques pour Cloud SQL et pour PostgreSQL sur site.

Lorsque vous créez un utilisateur, vous pouvez ajouter des paramètres de règles de mot de passe utilisateur.

Terraform

Pour créer un utilisateur, utilisez une ressource Terraform.

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

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

Appliquer les modifications

Pour appliquer votre configuration Terraform dans un projet Google Cloud, suivez les procédures des sections suivantes.

Préparer Cloud Shell

  1. Lancez Cloud Shell.
  2. Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.

    Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.

Préparer le répertoire

Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).

  1. Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension .tf, par exemple main.tf. Dans ce tutoriel, le fichier est appelé main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.

    Copiez l'exemple de code dans le fichier main.tf que vous venez de créer.

    Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.

  3. Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
  4. Enregistrez les modifications.
  5. Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
    terraform init

    Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option -upgrade :

    terraform init -upgrade

Appliquer les modifications

  1. Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
    terraform plan

    Corrigez les modifications de la configuration si nécessaire.

  2. Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply

    Attendez que Terraform affiche le message "Apply completed!" (Application terminée).

  3. Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud, accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.

Supprimer les modifications

Pour supprimer vos modifications, procédez comme suit :

  1. Pour désactiver la protection contre la suppression, définissez l'argument deletion_protection sur false dans le fichier de configuration Terraform.
    deletion_protection =  "false"
  2. Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply
  1. Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant yes à l'invite :

    terraform destroy

REST v1

Pour créer un utilisateur, exécutez une requête POST avec la méthode users:insert.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance souhaitée
  • user-id : ID de l'utilisateur
  • password : mot de passe de l'utilisateur

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22: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"
}

Les utilisateurs créés sur des instances à l'aide de la méthode d'authentification de Cloud SQL reçoivent automatiquement le rôle cloudsqlsuperuser et disposent des droits suivants associés à ce rôle : CREATEROLE, CREATEDB et LOGIN.

Si vous devez modifier les attributs de ces utilisateurs, utilisez la commande ALTER ROLE dans le client psql. Certains attributs ne peuvent pas être modifiés avec la commande ALTER ROLE. Les rôles NOSUPERUSER et NOREPLICATION figurent parmi les exceptions.

Les limites de longueur des noms d'utilisateur sont identiques pour Cloud SQL et pour PostgreSQL sur site.

Lorsque vous créez un utilisateur, vous pouvez ajouter des paramètres de règles de mot de passe utilisateur.

REST v1beta4

Pour créer un utilisateur, exécutez une requête POST avec la méthode users:insert.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance souhaitée
  • user-id : ID de l'utilisateur
  • password : mot de passe de l'utilisateur

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22: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"
}

Les utilisateurs créés sur des instances à l'aide de la méthode d'authentification de Cloud SQL reçoivent automatiquement le rôle cloudsqlsuperuser et disposent des droits suivants associés à ce rôle : CREATEROLE, CREATEDB et LOGIN.

Si vous devez modifier les attributs de ces utilisateurs, utilisez la commande ALTER ROLE dans le client psql. Certains attributs ne peuvent pas être modifiés avec la commande ALTER ROLE. Les rôles NOSUPERUSER et NOREPLICATION figurent parmi les exceptions.

Les limites de longueur des noms d'utilisateur sont identiques pour Cloud SQL et pour PostgreSQL sur site.

Lorsque vous créez un utilisateur, vous pouvez ajouter des paramètres de règles de mot de passe utilisateur.

Client psql

  1. Lorsque l'invite psql s'affiche, créez l'utilisateur :
      CREATE USER USER_NAME
          WITH PASSWORD PASSWORD
          ATTRIBUTE1
          ATTRIBUTE2...;
      

    Saisissez le mot de passe lorsque vous y êtes invité.

    Pour en savoir plus sur les attributs des rôles, consultez la documentation PostgreSQL.

  2. Vous pouvez confirmer la création de l'utilisateur en affichant la table utilisateur :
      SELECT * FROM pg_roles;
      

Définir une règle de mot de passe utilisateur

Vous pouvez définir une règle de mot de passe avec le type d'authentification intégré.

gcloud

Pour définir la règle de mot de passe utilisateur, utilisez la commande gcloud sql users set-password-policy.

Remplacez les éléments suivants :

  • USER_NAME : nom de l'utilisateur.
  • INSTANCE_NAME : nom de l'instance
  • HOST : nom d'hôte de l'utilisateur en tant qu'adresse IP, plage d'adresses ou hôte (%) spécifique.
  • PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS (facultatif) : nombre de fois qu'un utilisateur peut essayer de définir le mot de passe de manière incorrecte avant le verrouillage du compte. Utilisez --password-policy-enable-failed-attempts-check pour l'activer et --no-password-policy-enable-failed-attempts-check pour la désactiver.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION (facultatif) : indique le nombre de jours avant que le mot de passe expire et que l'utilisateur doive en créer un autre.
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

Pour supprimer une règle de mot de passe utilisateur, utilisez le paramètre --clear-password-policy.

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

Pour afficher les règles de mot de passe utilisateur, consultez la page Lister les utilisateurs.

REST v1

Pour définir une règle de mot de passe utilisateur, utilisez une requête PUT avec la méthode users:update.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • INSTANCE_ID : ID de l'instance
  • USER_ID : ID de l'utilisateur.
  • PASSWORD : mot de passe de l'utilisateur
  • FAILED_ATTEMPTS_CHECK : définissez la valeur sur true pour permettre de vérifier le nombre de tentatives de connexion infructueuses après lequel le compte est verrouillé.
  • NUMBER_OF_ATTEMPTS : nombre de tentatives de connexion infructueuses, après quoi le compte est verrouillé.
  • PASSWORD_EXPIRATION_DURATION : nombre de jours avant que le mot de passe expire et que l'utilisateur doive en créer un autre.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Pour afficher les règles de mot de passe utilisateur, consultez la page Lister les utilisateurs.

REST v1beta4

Pour définir une règle de mot de passe utilisateur, utilisez une requête PUT avec la méthode users:update.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • INSTANCE_ID : ID de l'instance
  • USER_ID : ID de l'utilisateur.
  • PASSWORD : mot de passe de l'utilisateur
  • FAILED_ATTEMPTS_CHECK : définissez la valeur sur true pour permettre de vérifier le nombre de tentatives de connexion infructueuses après lequel le compte est verrouillé.
  • NUMBER_OF_ATTEMPTS : nombre de tentatives de connexion infructueuses, après quoi le compte est verrouillé.
  • PASSWORD_EXPIRATION_DURATION : nombre de jours avant que le mot de passe expire et que l'utilisateur doive en créer un autre.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Pour afficher les règles de mot de passe utilisateur, consultez la page Lister les utilisateurs.

Répertorier les utilisateurs

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Utilisateurs.

gcloud

Utilisez la commande gcloud sql users list pour répertorier les utilisateurs de cette instance :

gcloud sql users list \
--instance=INSTANCE_NAME

La commande renvoie les éléments Name, Host et Type d'authentification pour chaque utilisateur.

En outre, pour le type d'authentification intégré, l'état et les paramètres de la règle de mot de passe sont renvoyés. Exemple :

    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

Pour répertorier les utilisateurs définis pour une instance, utilisez une requête GET avec la méthode users:list.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance souhaitée

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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 une règle de mot de passe utilisateur a été définie, la section items de la réponse inclut une section passwordPolicy. L'exemple de code suivant montre la section passwordPolicy :

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

REST v1beta4

Pour répertorier les utilisateurs définis pour une instance, utilisez une requête GET avec la méthode users:list.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance souhaitée

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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 une règle de mot de passe utilisateur a été définie, la section items de la réponse inclut une section passwordPolicy. L'exemple de code suivant montre la section passwordPolicy :

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

Client psql

Lorsque l'invite psql s'affiche, répertoriez les utilisateurs PostgreSQL :

SELECT * FROM pg_roles;

Modifier un mot de passe utilisateur

Les mots de passe utilisateur peuvent être modifiés de l'une des manières suivantes.

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Utilisateurs.
  4. Cliquez sur le menu "Autres actions" Icône Plus correspondant à l'utilisateur que vous souhaitez mettre à jour.
  5. Sélectionnez Modifier le mot de passe.
  6. Spécifiez un nouveau mot de passe.
  7. Cliquez sur OK.

gcloud

Utilisez la commande gcloud sql users set-password pour modifier un mot de passe.

Remplacez les éléments suivants :

  • USER_NAME : nom de l'utilisateur.
  • INSTANCE_NAME : nom de l'instance
gcloud sql users set-password USER_NAME \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

Pour modifier le mot de passe d'un utilisateur, exécutez une requête PUT avec la méthode users:update.

La requête suivante met à jour le mot de passe du compte utilisateur user_name.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance souhaitée
  • user-id : ID de l'utilisateur
  • password : mot de passe de l'utilisateur

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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

Pour modifier le mot de passe d'un utilisateur, exécutez une requête PUT avec la méthode users:update.

La requête suivante met à jour le mot de passe du compte utilisateur user_name.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance souhaitée
  • user-id : ID de l'utilisateur
  • password : mot de passe de l'utilisateur

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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"
}

Client psql

À l'invite psql, exécutez la commande ALTER USER.
  1. Déverrouillez l'utilisateur.
    ALTER USER USER_NAME WITH LOGIN;
    
  2. Modifiez le mot de passe et saisissez-le lorsque vous y êtes invité.
    ALTER USER USER_NAME WITH PASSWORD PASSWORD;
    

Si un utilisateur est verrouillé en raison de paramètres de règle sur les mots de passe, modifiez le mot de passe pour le déverrouiller. Assurez-vous que les mots de passe, lorsqu'ils sont modifiés, respectent les règles de mot de passe.

Supprimer une règle de mot de passe utilisateur

Vous pouvez supprimer une règle de mot de passe pour un utilisateur disposant du type d'authentification intégré.

gcloud

Pour supprimer la règle de mot de passe utilisateur, utilisez la commande gcloud sql users set-password-policy et le paramètre --clear-password-policy.

Remplacez les éléments suivants :

  • USER_NAME : nom de l'utilisateur.
  • INSTANCE_NAME : nom de l'instance
  • HOST : nom d'hôte de l'utilisateur en tant qu'adresse IP, plage d'adresses ou hôte (%) spécifique.
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

REST v1

Pour supprimer une règle de mot de passe utilisateur, utilisez une requête PUT avec la méthode users:update.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • INSTANCE_ID : ID de l'instance
  • USER_ID : ID de l'utilisateur.
  • PASSWORD : mot de passe de l'utilisateur

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

REST v1beta4

Pour supprimer une règle de mot de passe utilisateur, utilisez une requête PUT avec la méthode users:update.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • INSTANCE_ID : ID de l'instance
  • USER_ID : ID de l'utilisateur.
  • PASSWORD : mot de passe de l'utilisateur

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Supprimer un utilisateur

L'utilisateur par défaut peut supprimer des utilisateurs.

Avant de supprimer un utilisateur, vous devez supprimer tous les objets qu'il possède ou réaffecter la propriété de ces objets, ainsi que révoquer les droits accordés par le rôle sur d'autres objets.

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Utilisateurs.
  4. Cliquez sur le menu "Autres actions" Icône Plus correspondant à l'utilisateur que vous souhaitez supprimer.
  5. Sélectionnez Supprimer, puis à nouveau Supprimer.

gcloud

Utilisez la commande gcloud sql users delete pour supprimer un utilisateur.

Remplacez les éléments suivants :

  • USER_NAME : nom de l'utilisateur.
  • INSTANCE_NAME : nom de l'instance
gcloud sql users delete USER_NAME \
--instance=INSTANCE_NAME

REST v1

La requête ci-dessous exécute la méthode users.delete pour supprimer le compte utilisateur spécifié.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet
  • INSTANCE_ID : ID de l'instance souhaitée
  • USERNAME : l'adresse e-mail de l'utilisateur ou du compte de service

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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

La requête ci-dessous exécute la méthode users.delete pour supprimer le compte utilisateur spécifié.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet
  • INSTANCE_ID : ID de l'instance souhaitée
  • USERNAME : l'adresse e-mail de l'utilisateur ou du compte de service

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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"
}

Client psql

  1. Lorsque l'invite psql s'affiche, supprimez l'utilisateur :
    DROP ROLE USER_NAME;
    

    Pour en savoir plus sur l'instruction DROP ROLE, consultez la documentation PostgreSQL.

Mettre à jour les propriétés de l'utilisateur

Pour mettre à jour les propriétés utilisateur telles que les attributs, vous devez utiliser le client psql. Pour en savoir plus, consultez la section relative aux rôles de base de données dans la documentation PostgreSQL.

Étape suivante