Outil : create_user
Créez un utilisateur de base de données pour une instance Cloud SQL.
- Cet outil renvoie une opération de longue durée. Utilisez l'outil
get_operationpour interroger son état jusqu'à ce que l'opération soit terminée. - Lorsque vous utilisez l'outil
create_user, spécifiez le type d'utilisateur :CLOUD_IAM_USERouCLOUD_IAM_SERVICE_ACCOUNT. - Par défaut, le rôle
cloudsqlsuperuserest attribué au nouvel utilisateur, sauf si vous spécifiez explicitement d'autres rôles de base de données dans la requête. - Vous pouvez utiliser un utilisateur nouvellement créé avec l'outil
execute_sqlsi l'utilisateur est un utilisateur IAM actuellement connecté. L'outilexecute_sqlexécute les instructions SQL à l'aide des droits de l'utilisateur de base de données connecté à l'aide de l'authentification IAM pour les bases de données.
L'outil create_user présente les limites suivantes :
- Vous ne pouvez pas créer d'utilisateur intégré avec un mot de passe.
- L'outil
create_userne permet pas de créer un utilisateur pour SQL Server.
Pour créer un utilisateur IAM dans PostgreSQL :
- Le nom d'utilisateur de la base de données doit correspondre à l'adresse e-mail de l'utilisateur IAM, en minuscules. Par exemple, pour créer un utilisateur pour l'utilisateur IAM PostgreSQL
example-user@example.com, vous pouvez utiliser la requête suivante :
{
"name": "example-user@example.com",
"type": "CLOUD_IAM_USER",
"instance":"test-instance",
"project": "test-project"
}
Le nom d'utilisateur de base de données créé pour l'utilisateur IAM est example-user@example.com.
Pour créer un compte de service IAM dans PostgreSQL :
- Le nom d'utilisateur de la base de données doit être créé sans le suffixe
.gserviceaccount.com, même si l'adresse e-mail complète du compte estservice-account-name@project-id.iam.gserviceaccount.com. Par exemple, pour créer un compte de service IAM pour PostgreSQL, vous pouvez utiliser le format de requête suivant :
{
"name": "test@test-project.iam",
"type": "CLOUD_IAM_SERVICE_ACCOUNT",
"instance": "test-instance",
"project": "test-project"
}
Le nom d'utilisateur de base de données créé pour le compte de service IAM est test@test-project.iam.
Pour créer un utilisateur IAM ou un compte de service IAM dans MySQL :
- Lorsque Cloud SQL pour MySQL stocke un nom d'utilisateur, il tronque le signe @ et le nom de domaine de l'adresse e-mail de l'utilisateur ou du compte de service. Par exemple,
example-user@example.comdevientexample-user. - Pour cette raison, vous ne pouvez pas ajouter deux utilisateurs IAM ou comptes de service ayant le même nom d'utilisateur, mais des noms de domaine différents, à la même instance Cloud SQL.
- Par exemple, pour créer un utilisateur pour l'utilisateur IAM MySQL
example-user@example.com, utilisez la requête suivante :
{
"name": "example-user@example.com",
"type": "CLOUD_IAM_USER",
"instance": "test-instance",
"project": "test-project"
}
Le nom d'utilisateur de base de données créé pour l'utilisateur IAM est example-user.
- Par exemple, pour créer le compte de service IAM MySQL
service-account-name@project-id.iam.gserviceaccount.com, utilisez la requête suivante :
{
"name": "service-account-name@project-id.iam.gserviceaccount.com",
"type": "CLOUD_IAM_SERVICE_ACCOUNT",
"instance": "test-instance",
"project": "test-project"
}
Le nom d'utilisateur de base de données créé pour le compte de service IAM est service-account-name.
L'exemple suivant montre comment utiliser curl pour appeler l'outil MCP create_user.
| Requête curl |
|---|
curl --location 'https://sqladmin.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_user", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Schéma d'entrée
Requête d'insertion d'utilisateur pour MCP.
SqlUsersInsertMcpRequest
| Représentation JSON |
|---|
{
"project": string,
"instance": string,
"type": enum ( |
| Champs | |
|---|---|
project |
Obligatoire. ID du projet contenant l'instance. |
instance |
Obligatoire. ID de l'instance de base de données. Ce paramètre n'inclut pas l'ID du projet. |
type |
Obligatoire. Type d'utilisateur. Elle détermine la méthode d'authentification de l'utilisateur lors de la connexion. Utilisez le type CLOUD_IAM_USER lorsque vous vous authentifiez avec un utilisateur Cloud IAM. Utilisez le type CLOUD_IAM_SERVICE_ACCOUNT lorsque vous vous authentifiez avec un compte de service Cloud IAM. |
name |
Obligatoire. Nom de l'utilisateur dans l'instance Cloud SQL. |
databaseRoles[] |
Facultatif. Appartenances aux rôles de l'utilisateur. La valeur par défaut est [cloudsqlsuperuser]. |
Schéma de sortie
Ressource Operation. Pour les opérations réussies qui renvoient une ressource Operation, seuls les champs pertinents pour l'opération sont renseignés dans la ressource.
Opération
| Représentation JSON |
|---|
{ "kind": string, "targetLink": string, "status": enum ( |
| Champs | |
|---|---|
kind |
Cette valeur est toujours définie sur |
targetLink |
|
status |
État d'une opération. |
user |
Adresse e-mail de l'utilisateur qui a lancé cette opération. |
insertTime |
Heure à laquelle cette opération a été mise en file d'attente sur le fuseau horaire UTC au format RFC 3339, par exemple Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
startTime |
Heure à laquelle cette opération a réellement commencé sur le fuseau horaire UTC au format RFC 3339, par exemple Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
endTime |
Heure à laquelle cette opération a été terminée sur le fuseau horaire UTC au format RFC 3339, par exemple Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
error |
Si des erreurs se sont produites lors du traitement de cette opération, ce champ est renseigné. |
apiWarning |
Message d'avertissement de l'API Admin. |
operationType |
Type d'opération. Les valeurs valides sont : * |
importContext |
Contexte de l'opération d'importation, le cas échéant. |
exportContext |
Contexte de l'opération d'exportation, le cas échéant. |
backupContext |
Contexte de l'opération de sauvegarde, le cas échéant. |
preCheckMajorVersionUpgradeContext |
Ce champ n'est renseigné que lorsque operation_type est défini sur PRE_CHECK_MAJOR_VERSION_UPGRADE. Le message PreCheckMajorVersionUpgradeContext contient les détails de cette vérification préalable, tels que la version cible de la base de données pour la mise à niveau et les résultats de la vérification (y compris les avertissements ou les erreurs détectés). |
name |
Identifiant qui identifie l'opération de manière unique. Vous pouvez utiliser cet identifiant pour récupérer la ressource Operations contenant les informations sur l'opération. |
targetId |
Nom de la ressource sur laquelle cette opération s'exécute. |
selfLink |
URI de cette ressource. |
targetProject |
ID du projet de l'instance cible associée à cette opération. |
acquireSsrsLeaseContext |
Contexte de l'opération d'acquisition de bail SSRS, le cas échéant. |
subOperationType |
Facultatif. Sous-opération basée sur le type d'opération. |
Horodatage
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z). |
nanos |
Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus. |
OperationErrors
| Représentation JSON |
|---|
{
"kind": string,
"errors": [
{
object ( |
| Champs | |
|---|---|
kind |
Cette valeur est toujours définie sur |
errors[] |
Liste des erreurs rencontrées lors du traitement de cette opération. |
OperationError
| Représentation JSON |
|---|
{ "kind": string, "code": string, "message": string } |
| Champs | |
|---|---|
kind |
Cette valeur est toujours définie sur |
code |
Identifie l'erreur spécifique qui s'est produite. |
message |
Informations supplémentaires sur l'erreur rencontrée. |
ApiWarning
| Représentation JSON |
|---|
{
"code": enum ( |
| Champs | |
|---|---|
code |
Code permettant d'identifier de manière unique le type d'avertissement. |
message |
Message d'avertissement |
region |
Nom de la région pour l'avertissement REGION_UNREACHABLE. |
ImportContext
| Représentation JSON |
|---|
{ "uri": string, "database": string, "kind": string, "fileType": enum ( |
| Champs | |
|---|---|
uri |
Chemin d'accès au fichier d'importation dans Cloud Storage, au format |
database |
Base de données cible pour l'importation. Si |
kind |
Cette valeur est toujours définie sur |
fileType |
Type de fichier pour l'URI spécifié.`SQL |
csvImportOptions |
Options d'importation de données au format CSV. |
importUser |
Utilisateur de PostgreSQL associé à cette opération d'importation. Instances PostgreSQL uniquement. |
bakImportOptions |
Paramètres d'importation spécifiques aux fichiers SQL Server .BAK |
sqlImportOptions |
Facultatif. Options d'importation de données à partir d'instructions SQL. |
tdeImportOptions |
Facultatif. Paramètres d'importation spécifiques aux certificats TDE SQL Server |
SqlCsvImportOptions
| Représentation JSON |
|---|
{ "table": string, "columns": [ string ], "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Champs | |
|---|---|
table |
Table dans laquelle les données CSV sont importées. |
columns[] |
Colonnes dans lesquelles les données CSV sont importées. Si aucune colonne n'est spécifiée, toutes les colonnes de la table de base de données sont chargées avec les données CSV. |
escapeCharacter |
Spécifie le caractère devant précéder un caractère de données devant être échappé. |
quoteCharacter |
Spécifie le caractère de guillemet à utiliser lorsqu'une valeur de données est entre guillemets. |
fieldsTerminatedBy |
Spécifie le caractère qui sépare les colonnes dans chaque ligne du fichier. |
linesTerminatedBy |
Il permet de séparer les lignes. Si une ligne ne contient pas tous les champs, les colonnes restantes sont définies sur leurs valeurs par défaut. |
SqlBakImportOptions
| Représentation JSON |
|---|
{ "encryptionOptions": { object ( |
| Champs | |
|---|---|
encryptionOptions |
|
striped |
Indique si le groupe de sauvegarde en cours de restauration est agrégé ou non. Ne s'applique qu'à Cloud SQL pour SQL Server. |
noRecovery |
Indique si l'importation de la sauvegarde restaurera la base de données avec l'option NORECOVERY. Ne s'applique qu'à Cloud SQL pour SQL Server. |
recoveryOnly |
Indique si la demande d'importation de la sauvegarde ne fera que mettre la base de données en ligne sans télécharger le contenu BAK. Seule l'une des valeurs "no_recovery" et "recovery_only" peut être définie sur "true". Dans le cas contraire, une erreur sera renvoyée. Ne s'applique qu'à Cloud SQL pour SQL Server. |
bakType |
Type de contenu BAK : FULL ou DIFF |
stopAt |
Facultatif. Code temporel auquel l'importation doit s'arrêter. Ce code temporel est au format RFC 3339 (par exemple, Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
stopAtMark |
Facultatif. Transaction marquée à laquelle l'importation doit s'arrêter. Ce champ est équivalent au mot clé STOPATMARK et ne s'applique qu'à Cloud SQL pour SQL Server. |
EncryptionOptions
| Représentation JSON |
|---|
{ "certPath": string, "pvkPath": string, "pvkPassword": string, "keepEncrypted": boolean } |
| Champs | |
|---|---|
certPath |
Chemin d'accès au certificat (.cer) dans Cloud Storage, au format |
pvkPath |
Chemin d'accès à la clé privée du certificat (.pvk) dans Cloud Storage, au format |
pvkPassword |
Mot de passe qui chiffre la clé privée |
keepEncrypted |
Facultatif. Indique si le fichier importé reste chiffré. |
BoolValue
| Représentation JSON |
|---|
{ "value": boolean } |
| Champs | |
|---|---|
value |
Valeur booléenne. |
SqlImportOptions
| Représentation JSON |
|---|
{
"threads": integer,
"parallel": boolean,
"postgresImportOptions": {
object ( |
| Champs | |
|---|---|
threads |
Facultatif. Nombre de threads à utiliser pour l'importation parallèle. |
parallel |
Facultatif. Indique si l'importation doit être parallèle ou non. |
postgresImportOptions |
Facultatif. Options d'importation à partir d'une instance Cloud SQL pour PostgreSQL. |
Int32Value
| Représentation JSON |
|---|
{ "value": integer } |
| Champs | |
|---|---|
value |
Valeur int32. |
PostgresImportOptions
| Représentation JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Champs | |
|---|---|
clean |
Facultatif. Option "--clean" pour l'utilitaire pg_restore. Cette option ne s'applique que si vous avez activé l'importation de fichiers en parallèle dans Cloud SQL. |
ifExists |
Facultatif. Indicateur "--if-exists" pour l'utilitaire pg_restore. Cette option ne s'applique que si vous avez activé l'importation de fichiers en parallèle dans Cloud SQL. |
SqlTdeImportOptions
| Représentation JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Champs | |
|---|---|
certificatePath |
Obligatoire. Chemin d'accès à la clé publique du certificat TDE au format gs://bucketName/fileName. L'instance doit disposer d'un accès en lecture au fichier. Ne s'applique qu'aux instances SQL Server. |
privateKeyPath |
Obligatoire. Chemin d'accès à la clé privée du certificat TDE au format gs://bucketName/fileName. L'instance doit disposer d'un accès en lecture au fichier. Ne s'applique qu'aux instances SQL Server. |
privateKeyPassword |
Obligatoire. Mot de passe qui chiffre la clé privée. |
name |
Obligatoire. Nom du certificat. Ne s'applique qu'aux instances SQL Server. |
ExportContext
| Représentation JSON |
|---|
{ "uri": string, "databases": [ string ], "kind": string, "sqlExportOptions": { object ( |
| Champs | |
|---|---|
uri |
Chemin d'accès au fichier dans Google Cloud Storage où l'exportation sera stockée. L'URI est au format |
databases[] |
Bases de données à exporter. |
kind |
Cette valeur est toujours définie sur |
sqlExportOptions |
Options d'exportation de données sous forme d'instructions SQL. |
csvExportOptions |
Options d'exportation de données au format CSV. Instances |
fileType |
Type de fichier pour l'URI spécifié. |
offload |
Indique si une exportation sans serveur doit être effectuée. |
bakExportOptions |
Options d'exportation de données au format BAK. |
tdeExportOptions |
Facultatif. Paramètres d'exportation spécifiques aux certificats TDE SQL Server |
SqlExportOptions
| Représentation JSON |
|---|
{ "tables": [ string ], "schemaOnly": boolean, "mysqlExportOptions": { object ( |
| Champs | |
|---|---|
tables[] |
Tables à exporter ou qui ont été exportées à partir de la base de données spécifiée. Si vous spécifiez des tables, ne spécifiez qu'une seule base de données. Pour les instances PostgreSQL, vous ne pouvez spécifier qu'une seule table. |
schemaOnly |
Exporter uniquement les schémas. |
mysqlExportOptions |
|
threads |
Facultatif. Nombre de threads à utiliser pour l'exportation parallèle. |
parallel |
Facultatif. Indique si l'exportation doit être parallèle ou non. |
postgresExportOptions |
Facultatif. Options d'exportation à partir d'une instance Cloud SQL pour PostgreSQL. |
MysqlExportOptions
| Représentation JSON |
|---|
{ "masterData": integer } |
| Champs | |
|---|---|
masterData |
Option permettant d'inclure l'instruction SQL requise pour configurer la réplication. Si la valeur est définie sur |
PostgresExportOptions
| Représentation JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Champs | |
|---|---|
clean |
Facultatif. Utilisez cette option pour inclure DROP.
Instructions SQL. Utilisez ces instructions pour supprimer des objets de base de données avant d'exécuter l'opération d'importation. |
ifExists |
Facultatif. Option permettant d'inclure une instruction SQL IF EXISTS avec chaque instruction DROP produite par clean. |
SqlCsvExportOptions
| Représentation JSON |
|---|
{ "selectQuery": string, "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Champs | |
|---|---|
selectQuery |
Requête SELECT utilisée pour extraire les données. |
escapeCharacter |
Spécifie le caractère devant précéder un caractère de données devant être échappé. |
quoteCharacter |
Spécifie le caractère de guillemet à utiliser lorsqu'une valeur de données est entre guillemets. |
fieldsTerminatedBy |
Spécifie le caractère qui sépare les colonnes dans chaque ligne du fichier. |
linesTerminatedBy |
Il permet de séparer les lignes. Si une ligne ne contient pas tous les champs, les colonnes restantes sont définies sur leurs valeurs par défaut. |
SqlBakExportOptions
| Représentation JSON |
|---|
{
"striped": boolean,
"stripeCount": integer,
"bakType": enum ( |
| Champs | |
|---|---|
striped |
Indique si l'exportation doit être rayée ou non. |
stripeCount |
Option permettant de spécifier le nombre de bandes à utiliser pour l'exportation. Si ce champ est vide et que la valeur du champ "Rayé" est "true", le nombre de rayures est choisi automatiquement. |
bakType |
Type de ce fichier BAK (exportation, FULL ou DIFF), SQL Server uniquement |
copyOnly |
Obsolète : copy_only est obsolète. Utilisez plutôt differential_base |
differentialBase |
Indique si la sauvegarde peut être utilisée comme base différentielle. Les sauvegardes copy_only ne peuvent pas être utilisées comme base différentielle. |
exportLogStartTime |
Facultatif. Code temporel de début de l'inclusion du journal des transactions dans l'opération d'exportation. Format RFC 3339 (par exemple, Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
exportLogEndTime |
Facultatif. Code temporel de fin pour lequel le journal des transactions sera inclus dans l'opération d'exportation. Format RFC 3339 (par exemple, Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
SqlTdeExportOptions
| Représentation JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Champs | |
|---|---|
certificatePath |
Obligatoire. Chemin d'accès à la clé publique du certificat TDE au format gs://bucketName/fileName. L'instance doit disposer d'un accès en écriture au bucket. Ne s'applique qu'aux instances SQL Server. |
privateKeyPath |
Obligatoire. Chemin d'accès à la clé privée du certificat TDE au format gs://bucketName/fileName. L'instance doit disposer d'un accès en écriture à l'emplacement. Ne s'applique qu'aux instances SQL Server. |
privateKeyPassword |
Obligatoire. Mot de passe qui chiffre la clé privée. |
name |
Obligatoire. Nom du certificat. Ne s'applique qu'aux instances SQL Server. |
BackupContext
| Représentation JSON |
|---|
{ "backupId": string, "kind": string, "name": string } |
| Champs | |
|---|---|
backupId |
Identifiant de la sauvegarde. |
kind |
Cette valeur est toujours définie sur |
name |
Nom de la sauvegarde. Format : projects/{project}/backups/{backup} |
PreCheckMajorVersionUpgradeContext
| Représentation JSON |
|---|
{ "targetDatabaseVersion": enum ( |
| Champs | |
|---|---|
targetDatabaseVersion |
Obligatoire. Version de base de données cible vers laquelle effectuer la mise à niveau. |
preCheckResponse[] |
Uniquement en sortie. Réponses de l'opération de prévérification. |
kind |
Facultatif. Cette valeur est toujours définie sur |
PreCheckResponse
| Représentation JSON |
|---|
{ "actionsRequired": [ string ], // Union field |
| Champs | |
|---|---|
actionsRequired[] |
Actions que l'utilisateur doit effectuer. Utilisez "Répéter" pour plusieurs actions. |
Champ d'union
|
|
message |
Message à afficher auprès de l'utilisateur. |
Champ d'union
|
|
messageType |
Type de message (information, avertissement ou erreur). |
AcquireSsrsLeaseContext
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union
|
|
setupLogin |
Nom d'utilisateur à utiliser comme identifiant de connexion pour la configuration afin de se connecter au serveur de base de données pour la configuration de SSRS. |
Champ d'union
|
|
serviceLogin |
Nom d'utilisateur à utiliser comme identifiant de service pour se connecter à la base de données de rapports lors de la configuration de SSRS. |
Champ d'union
|
|
reportDatabase |
Base de données de rapports à utiliser pour la configuration de SSRS. |
Champ d'union
|
|
duration |
Durée du bail nécessaire pour la configuration de SSRS. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
Durée
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Secondes signées de la durée. La valeur doit être comprise entre -315 576 000 000 et +315 576 000 000 (inclus). Remarque : Ces limites sont calculées à partir de : 60 s/min * 60 min/h * 24 h/jour * 365,25 jours/an * 10 000 ans |
nanos |
Fractions de secondes signées avec une précision de l'ordre de la nanoseconde pour la durée. Les durées inférieures à une seconde sont représentées par un champ |
SqlSubOperationType
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union sub_operation_details. Détails de la sous-opération correspondant au type d'opération. sub_operation_details ne peut être qu'un des éléments suivants : |
|
maintenanceType |
Type de maintenance à effectuer sur l'instance. |
Annotations d'outils
Indication destructive : ❌ | Indication idempotente : ❌ | Indication en lecture seule : ❌ | Indication Open World : ❌