Cette page explique comment activer et utiliser l'authentification intégrée Cloud SQL.
Pour en savoir plus sur les utilisateurs que vous créez à l'aide de Cloud SQL, consultez la section Autres utilisateurs SQL Server.Avant de créer des utilisateurs
- Créer une instance Cloud SQL. Pour en savoir plus, consultez la page Créer des instances.
- Si vous prévoyez de gérer les utilisateurs à l'aide du client d'administration de votre base de données, 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.
Concernant Cloud SQL pour SQL Server, l'utilisateur par défaut estsqlserver
.
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans le menu de navigation SQL, sélectionnez Utilisateurs.
- Recherchez l'utilisateur
sqlserver
et sélectionnez Modifier le mot de passe dans le menu "Autres actions" . - 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 sqlserver \ --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
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans le menu de navigation SQL, sélectionnez Utilisateurs.
- Cliquez sur Ajouter un compte utilisateur.
- Sur la page Ajouter un compte utilisateur à l'instance instance_name, ajoutez les informations suivantes :
- Un nom d'utilisateur
- Un mot de passe (facultatif).
- Cliquez sur Ajouter.
gcloud
Pour créer un utilisateur, utilisez la commande gcloud sql users create
.
Remplacez les éléments suivants :
- USER_NAME : nom d'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 limites de longueur des noms d'utilisateur sont identiques pour Cloud SQL et pour SQL Server sur site.
Terraform
Pour créer un utilisateur, utilisez une ressource Terraform.
Appliquer les modifications
Pour appliquer votre configuration Terraform dans un projet Google Cloud, suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
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).
-
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 exemplemain.tf
. Dans ce tutoriel, le fichier est appelémain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
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.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
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
-
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.
-
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).
- 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 :
- Pour désactiver la protection contre la suppression, définissez l'argument
deletion_protection
surfalse
dans le fichier de configuration Terraform.deletion_protection = "false"
- Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant
yes
lorsque vous y êtes invité :terraform apply
-
Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant
yes
à la requête :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 limites de longueur des noms d'utilisateur sont identiques pour Cloud SQL et pour SQL Server sur site.
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 limites de longueur des noms d'utilisateur sont identiques pour Cloud SQL et pour SQL Server sur site.
Répertorier les utilisateurs
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- 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
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" ] } }, { ... }, { ... } ] }
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" ] } }, { ... }, { ... } ] }
Modifier un mot de passe utilisateur
Les mots de passe utilisateur peuvent être modifiés de l'une des manières suivantes.
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans le menu de navigation SQL, sélectionnez Utilisateurs.
- Cliquez sur le menu "Autres actions" correspondant à l'utilisateur que vous souhaitez mettre à jour.
- Sélectionnez Modifier le mot de passe.
- Spécifiez un nouveau mot de passe.
- 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 d'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" }
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
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans le menu de navigation SQL, sélectionnez Utilisateurs.
- Cliquez sur le menu "Autres actions" correspondant à l'utilisateur que vous souhaitez supprimer.
- 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 d'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" }
Mettre à jour les propriétés de l'utilisateur
Pour en savoir plus sur les rôles au niveau de la base de données dans SQL Server, consultez l'article Utilisation des rôles au niveau de la base de données dans la documentation SQL Server.Étape suivante
- Apprenez-en plus sur le fonctionnement de Cloud SQL avec les utilisateurs.