Ferramenta: update_user
Atualize um usuário de banco de dados para uma instância do Cloud SQL. Um caso de uso comum para o update_user é conceder a um usuário a função cloudsqlsuperuser, que pode fornecer a ele muitas permissões necessárias.
Essa ferramenta só aceita a atualização de usuários para atribuir papéis de banco de dados.
- Essa ferramenta retorna uma operação de longa duração. Use a ferramenta
get_operationpara pesquisar o status até que a operação seja concluída. - Antes de chamar a ferramenta
update_user, sempre verifique a configuração atual do usuário, como o tipo de usuário, com a ferramentalist_users. - Como um caso especial para o MySQL, se a ferramenta
list_usersretornar um endereço de e-mail completo para o campoiamEmail, por exemplo,{name=test-account, iamEmail=test-account@project-id.iam.gserviceaccount.com}, na solicitaçãoupdate_user, use o endereço de e-mail completo no campoiamEmaildo camponamedo toolrequest. Exemplo:name=test-account@project-id.iam.gserviceaccount.com.
Parâmetros principais para atualizar as funções dos usuários:
database_roles: uma lista de papéis de banco de dados a serem atribuídos ao usuário.revokeExistingRoles: um campo booleano (padrão: "false") que controla como as funções atuais são processadas.
Como as atualizações de função funcionam:
Se
revokeExistingRolesfor verdadeiro:- Todas as funções concedidas ao usuário, mas NÃO na lista
database_rolesfornecida, serão REVOGADAS. - A revogação se aplica apenas a papéis que não são do sistema. Funções do sistema, como
cloudsqliamuser, não serão revogadas. - Todas as funções na lista
database_rolesque o usuário ainda NÃO tem serão CONCEDIDAS. - Se
database_rolesestiver vazio, TODOS os papéis não relacionados ao sistema serão revogados.
- Todas as funções concedidas ao usuário, mas NÃO na lista
Se
revokeExistingRolesfor "false" (padrão):- Todas as funções na lista
database_rolesque o usuário ainda NÃO tem serão CONCEDIDAS. - Os papéis atuais que NÃO estão na lista
database_rolessão MANTIDOS. - Se
database_rolesestiver vazio, não haverá mudança nos papéis do usuário.
- Todas as funções na lista
Exemplos:
Funções atuais:
[roleA, roleB]- Solicitação:
database_roles: [roleB, roleC], revokeExistingRoles: true - Resultado: revoga
roleAe concederoleC. As funções de usuário se tornam[roleB, roleC].
- Solicitação:
database_roles: [roleB, roleC], revokeExistingRoles: false - Resultado: concede
roleC. As funções de usuário se tornam[roleA, roleB, roleC].
- Solicitação:
database_roles: [], revokeExistingRoles: true - Resultado: revoga
roleAeroleB. As funções de usuário se tornam[].
- Solicitação:
database_roles: [], revokeExistingRoles: false - Resultado: nenhuma mudança. As funções de usuário permanecem
[roleA, roleB].
- Solicitação:
O exemplo a seguir demonstra como usar curl para invocar a ferramenta update_user MCP.
| Solicitação 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": "update_user", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Esquema de entrada
Solicitação de atualização do usuário para o MCP.
SqlUsersUpdateMcpRequest
| Representação JSON |
|---|
{ "host": string, "instance": string, "name": string, "project": string, "databaseRoles": [ string ], "type": enum ( |
| Campos | |
|---|---|
host |
Opcional. Host do usuário na instância. |
instance |
Obrigatório. ID da instância do banco de dados. Isso não inclui o ID do projeto. |
name |
Obrigatório. Nome do usuário na instância. |
project |
Obrigatório. ID do projeto com a instância. |
databaseRoles[] |
Opcional. Lista de funções de banco de dados a serem concedidas ao usuário. body.database_roles será ignorado para solicitações de atualização. |
type |
Obrigatório. O tipo de usuário. Ele determina o método para autenticar o usuário durante o login. O padrão é o tipo de usuário integrado do banco de dados. |
Campo de união
|
|
revokeExistingRoles |
Opcional. Revogue os papéis concedidos ao usuário. |
Esquema de saída
Um recurso de operação. Para operações bem-sucedidas que retornam um recurso de operação, somente os campos relevantes à operação são preenchidos no recurso.
Operação
| Representação JSON |
|---|
{ "kind": string, "targetLink": string, "status": enum ( |
| Campos | |
|---|---|
kind |
Esse valor é sempre |
targetLink |
|
status |
O status de uma operação. |
user |
O endereço de e-mail do usuário que iniciou essa operação. |
insertTime |
A hora em que essa operação foi colocada na fila no fuso horário UTC no formato RFC 3339. Por exemplo, Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
startTime |
A hora em que essa operação começou no fuso horário UTC no formato RFC 3339. Por exemplo, Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
endTime |
A hora em que essa operação foi concluída no fuso horário UTC no formato RFC 3339, por exemplo, Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
error |
Se ocorrerem erros durante o processamento dessa operação, esse campo será preenchido. |
apiWarning |
Uma mensagem de aviso da API Admin. |
operationType |
O tipo da operação. Os valores válidos são: * |
importContext |
O contexto da operação de importação, se aplicável. |
exportContext |
O contexto da operação de exportação, se aplicável. |
backupContext |
O contexto da operação de backup, se aplicável. |
preCheckMajorVersionUpgradeContext |
Esse campo só é preenchido quando o "operation_type" é "PRE_CHECK_MAJOR_VERSION_UPGRADE". A mensagem "PreCheckMajorVersionUpgradeContext" contém os detalhes dessa pré-verificação, como a versão de destino do banco de dados para o upgrade e os resultados da verificação (incluindo avisos ou erros encontrados). |
name |
Um identificador que identifica exclusivamente a operação. É possível usar esse identificador para recuperar o recurso Operações que tem informações sobre a operação. |
targetId |
Nome do recurso em que essa operação é executada. |
selfLink |
O URI desse recurso. |
targetProject |
O ID do projeto da instância de destino relacionada a essa operação. |
acquireSsrsLeaseContext |
O contexto da operação de aquisição de concessão do SSRS, se aplicável. |
subOperationType |
Opcional. A suboperação com base no tipo de operação. |
Carimbo de data/hora
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799 (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa estar entre 0 e 999.999.999 (inclusive). |
OperationErrors
| Representação JSON |
|---|
{
"kind": string,
"errors": [
{
object ( |
| Campos | |
|---|---|
kind |
Esse valor é sempre |
errors[] |
A lista de erros encontrados durante o processamento dessa operação. |
OperationError
| Representação JSON |
|---|
{ "kind": string, "code": string, "message": string } |
| Campos | |
|---|---|
kind |
Esse valor é sempre |
code |
Identifica o erro específico que ocorreu. |
message |
Informações adicionais sobre o erro encontrado. |
ApiWarning
| Representação JSON |
|---|
{
"code": enum ( |
| Campos | |
|---|---|
code |
Código para identificar exclusivamente o tipo de aviso. |
message |
A mensagem de aviso. |
region |
O nome da região para o aviso REGION_UNREACHABLE. |
ImportContext
| Representação JSON |
|---|
{ "uri": string, "database": string, "kind": string, "fileType": enum ( |
| Campos | |
|---|---|
uri |
Caminho para o arquivo de importação no Cloud Storage, no formato |
database |
O banco de dados de destino da importação. Se |
kind |
Esse valor é sempre |
fileType |
O tipo de arquivo do URI especificado.`SQL |
csvImportOptions |
Opções para importar dados como CSV. |
importUser |
O usuário do PostgreSQL para esta operação de importação. Somente instâncias do PostgreSQL. |
bakImportOptions |
Parâmetros de importação específicos para arquivos .BAK do SQL Server |
sqlImportOptions |
Opcional. Opções para importar dados de instruções SQL. |
tdeImportOptions |
Opcional. Parâmetros de importação específicos para certificados TDE do SQL Server |
SqlCsvImportOptions
| Representação JSON |
|---|
{ "table": string, "columns": [ string ], "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Campos | |
|---|---|
table |
A tabela para a qual os dados CSV são importados. |
columns[] |
As colunas para as quais os dados CSV são importados. Se não for especificado, todas as colunas da tabela do banco de dados serão carregadas com dados CSV. |
escapeCharacter |
Especifica o caractere que precisa aparecer antes de um caractere de dados que precisa de escape. |
quoteCharacter |
Especifica o caractere de aspas a ser usado quando um valor de dados é colocado entre aspas. |
fieldsTerminatedBy |
Especifica o caractere que separa as colunas em cada linha do arquivo. |
linesTerminatedBy |
Usado para separar linhas. Se uma linha não tiver todos os campos, o restante das colunas será definido com os valores padrão. |
SqlBakImportOptions
| Representação JSON |
|---|
{ "encryptionOptions": { object ( |
| Campos | |
|---|---|
encryptionOptions |
|
striped |
Se o conjunto de backup que está sendo restaurado é distribuído ou não. Aplicável apenas ao Cloud SQL para SQL Server. |
noRecovery |
Indica se a importação do backup vai restaurar o banco de dados com a opção NORECOVERY. Aplicável apenas ao Cloud SQL para SQL Server. |
recoveryOnly |
Se a solicitação de importação de backup apenas vai colocar o banco de dados on-line sem baixar o conteúdo Bak. Apenas "no_recovery" e "recovery_only" podem ser verdadeiros. Caso contrário, um erro será retornado. Aplicável apenas ao Cloud SQL para SQL Server. |
bakType |
Tipo do conteúdo bak, FULL ou DIFF |
stopAt |
Opcional. O carimbo de data/hora em que a importação deve ser interrompida. Esse carimbo de data/hora está no formato RFC 3339 (por exemplo, Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
stopAtMark |
Opcional. A transação marcada em que a importação deve ser interrompida. Esse campo é equivalente à palavra-chave STOPATMARK e se aplica apenas ao Cloud SQL para SQL Server. |
EncryptionOptions
| Representação JSON |
|---|
{ "certPath": string, "pvkPath": string, "pvkPassword": string, "keepEncrypted": boolean } |
| Campos | |
|---|---|
certPath |
Caminho do certificado (.cer) no Cloud Storage, no formato |
pvkPath |
Caminho da chave particular do certificado (.pvk) no Cloud Storage, no formato |
pvkPassword |
A senha que criptografa a chave particular. |
keepEncrypted |
Opcional. Se o arquivo importado permanece criptografado. |
BoolValue
| Representação JSON |
|---|
{ "value": boolean } |
| Campos | |
|---|---|
value |
O valor booleano. |
SqlImportOptions
| Representação JSON |
|---|
{
"threads": integer,
"parallel": boolean,
"postgresImportOptions": {
object ( |
| Campos | |
|---|---|
threads |
Opcional. O número de linhas de execução a serem usadas para importação paralela. |
parallel |
Opcional. Se a importação deve ser paralela ou não. |
postgresImportOptions |
Opcional. Opções para importar de uma instância do Cloud SQL para PostgreSQL. |
Int32Value
| Representação JSON |
|---|
{ "value": integer } |
| Campos | |
|---|---|
value |
O valor int32. |
PostgresImportOptions
| Representação JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Campos | |
|---|---|
clean |
Opcional. A flag --clean para o utilitário pg_restore. Essa flag só se aplica se você tiver ativado o Cloud SQL para importar arquivos em paralelo. |
ifExists |
Opcional. A flag "--if-exists" para o utilitário pg_restore. Essa flag só se aplica se você tiver ativado o Cloud SQL para importar arquivos em paralelo. |
SqlTdeImportOptions
| Representação JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Campos | |
|---|---|
certificatePath |
Obrigatório. Caminho para a chave pública do certificado TDE no formato gs://bucketName/fileName. A instância precisa ter acesso de leitura ao arquivo. Aplicável apenas a instâncias do SQL Server. |
privateKeyPath |
Obrigatório. Caminho para a chave privada do certificado TDE no formato gs://bucketName/fileName. A instância precisa ter acesso de leitura ao arquivo. Aplicável apenas a instâncias do SQL Server. |
privateKeyPassword |
Obrigatório. A senha que criptografa a chave privada. |
name |
Obrigatório. Nome do certificado. Aplicável apenas a instâncias do SQL Server. |
ExportContext
| Representação JSON |
|---|
{ "uri": string, "databases": [ string ], "kind": string, "sqlExportOptions": { object ( |
| Campos | |
|---|---|
uri |
O caminho do arquivo no Google Cloud Storage em que a exportação será armazenada. O URI está no formato |
databases[] |
Bancos de dados a serem exportados. |
kind |
Esse valor é sempre |
sqlExportOptions |
Opções para exportar dados como instruções SQL. |
csvExportOptions |
Opções para exportar dados como CSV. Somente instâncias |
fileType |
O tipo de arquivo do URI especificado. |
offload |
Se uma exportação sem servidor será realizada. |
bakExportOptions |
Opções para exportar dados como arquivos BAK. |
tdeExportOptions |
Opcional. Parâmetros de exportação específicos para certificados TDE do SQL Server |
SqlExportOptions
| Representação JSON |
|---|
{ "tables": [ string ], "schemaOnly": boolean, "mysqlExportOptions": { object ( |
| Campos | |
|---|---|
tables[] |
Tabelas a serem exportadas, ou que foram exportadas, do banco de dados especificado. Se você especificar tabelas, especifique apenas um banco de dados. Para instâncias do PostgreSQL, é possível especificar apenas uma tabela. |
schemaOnly |
Exportar apenas esquemas. |
mysqlExportOptions |
|
threads |
Opcional. O número de linhas de execução a serem usadas para exportação paralela. |
parallel |
Opcional. Se a exportação deve ser paralela ou não. |
postgresExportOptions |
Opcional. Opções para exportar de uma instância do Cloud SQL para PostgreSQL. |
MysqlExportOptions
| Representação JSON |
|---|
{ "masterData": integer } |
| Campos | |
|---|---|
masterData |
Opção para incluir a instrução SQL necessária para configurar a replicação. Se definido como |
PostgresExportOptions
| Representação JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Campos | |
|---|---|
clean |
Opcional. Use essa opção para incluir DROP
Instruções SQL. Use estas instruções para excluir objetos do banco de dados antes de executar a operação de importação. |
ifExists |
Opcional. Opção para incluir uma instrução SQL IF EXISTS com cada instrução DROP produzida por clean. |
SqlCsvExportOptions
| Representação JSON |
|---|
{ "selectQuery": string, "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Campos | |
|---|---|
selectQuery |
A consulta de seleção usada para extrair os dados. |
escapeCharacter |
Especifica o caractere que precisa aparecer antes de um caractere de dados que precisa de escape. |
quoteCharacter |
Especifica o caractere de aspas a ser usado quando um valor de dados é colocado entre aspas. |
fieldsTerminatedBy |
Especifica o caractere que separa as colunas em cada linha do arquivo. |
linesTerminatedBy |
Usado para separar linhas. Se uma linha não tiver todos os campos, o restante das colunas será definido com os valores padrão. |
SqlBakExportOptions
| Representação JSON |
|---|
{
"striped": boolean,
"stripeCount": integer,
"bakType": enum ( |
| Campos | |
|---|---|
striped |
Se a exportação deve ser listrada ou não. |
stripeCount |
Opção para especificar quantas listras usar na exportação. Se estiver em branco e o valor do campo listrado for verdadeiro, o número de listras será escolhido automaticamente. |
bakType |
O tipo do arquivo BAK será "export", "FULL" ou "DIFF", somente para SQL Server. |
copyOnly |
Descontinuado: copy_only foi descontinuado. Use differential_base em vez disso |
differentialBase |
Se o backup pode ser usado como uma cópia de base diferencial, o backup copy_only não pode ser usado como base diferencial. |
exportLogStartTime |
Opcional. O carimbo de data/hora de início em que o registro de transações será incluído na operação de exportação. Formato RFC 3339 (por exemplo, Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
exportLogEndTime |
Opcional. O carimbo de data/hora de término em que o registro de transações será incluído na operação de exportação. Formato RFC 3339 (por exemplo, Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
SqlTdeExportOptions
| Representação JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Campos | |
|---|---|
certificatePath |
Obrigatório. Caminho para a chave pública do certificado TDE no formato gs://bucketName/fileName. A instância precisa ter acesso de gravação ao bucket. Aplicável apenas a instâncias do SQL Server. |
privateKeyPath |
Obrigatório. Caminho para a chave privada do certificado TDE no formato gs://bucketName/fileName. A instância precisa ter acesso de gravação ao local. Aplicável apenas a instâncias do SQL Server. |
privateKeyPassword |
Obrigatório. A senha que criptografa a chave privada. |
name |
Obrigatório. Nome do certificado. Aplicável apenas a instâncias do SQL Server. |
BackupContext
| Representação JSON |
|---|
{ "backupId": string, "kind": string, "name": string } |
| Campos | |
|---|---|
backupId |
O identificador do backup. |
kind |
Esse valor é sempre |
name |
O nome do backup. Formato: projects/{project}/backups/{backup} |
PreCheckMajorVersionUpgradeContext
| Representação JSON |
|---|
{ "targetDatabaseVersion": enum ( |
| Campos | |
|---|---|
targetDatabaseVersion |
Obrigatório. A versão de destino do banco de dados para fazer upgrade. |
preCheckResponse[] |
Apenas saída. As respostas da operação de pré-verificação. |
kind |
Opcional. Esse valor é sempre |
PreCheckResponse
| Representação JSON |
|---|
{ "actionsRequired": [ string ], // Union field |
| Campos | |
|---|---|
actionsRequired[] |
As ações que o usuário precisa realizar. Use "repeated" para várias ações. |
Campo de união
|
|
message |
A mensagem a ser exibida para o usuário. |
Campo de união
|
|
messageType |
O tipo de mensagem, seja de informação, aviso ou erro. |
AcquireSsrsLeaseContext
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união
|
|
setupLogin |
O nome de usuário a ser usado como login de configuração para se conectar ao servidor de banco de dados na configuração do SSRS. |
Campo de união
|
|
serviceLogin |
O nome de usuário a ser usado como login de serviço para se conectar ao banco de dados de relatórios na configuração do SSRS. |
Campo de união
|
|
reportDatabase |
O banco de dados de relatórios a ser usado para a configuração do SSRS. |
Campo de união
|
|
duration |
Duração do lease necessária para a configuração do SSRS. Duração em segundos com até nove dígitos fracionários, terminando em " |
Duração
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Segundos assinados do período. Precisa estar entre -315.576.000.000 e +315.576.000.000 (inclusive). Observação: esses limites são calculados da seguinte forma: 60 s/min * 60 min/h * 24 h/dia * 365,25 dias/ano * 10.000 anos |
nanos |
Frações assinadas de um segundo com resolução de nanossegundos do período. Durações menores que um segundo são representadas com um campo |
SqlSubOperationType
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união sub_operation_details. Detalhes da suboperação correspondentes ao tipo de operação. sub_operation_details pode ser apenas de um dos tipos a seguir: |
|
maintenanceType |
O tipo de manutenção a ser realizada na instância. |
Anotações de ferramentas
Dica destrutiva: ❌ | Dica idempotente: ❌ | Dica somente leitura: ❌ | Dica de mundo aberto: ❌