Nesta página, descrevemos como ativar e usar a autenticação integrada do Cloud SQL.
Para uma visão geral, consulte Autenticação de banco de dados integrada do Cloud SQL.Antes de criar usuários
- Crie uma instância do Cloud SQL. Para mais informações, consulte Criar instâncias.
- Ative as políticas de senha para a instância. Para mais informações, consulte Políticas de senha da instância.
Se você planeja usar o cliente administrativo do banco de dados para gerenciar usuários, realize estas ações:
Conecte o cliente à sua instância. Consulte Opções de conexão para aplicativos externos.
Defina a senha para configurar o usuário padrão na instância. Consulte Definir a senha da conta de usuário padrão.
Definir a senha da conta de usuário padrão
Ao criar uma nova instância do Cloud SQL, defina uma senha para a conta de usuário padrão antes de se conectar a ela.
No Cloud SQL para MySQL, o usuário padrão éroot@%
. Isso significa um usuário de banco de dados com um nome de usuário root
, que pode se conectar de qualquer host (@%
).
Console
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Encontre o usuário
root
e selecione Alterar senha no menu "Mais ações".
Considere as condições listadas para a senha, que são derivadas da política de senha definida para a instância.
- Forneça uma senha forte, de que se lembre posteriormente, e clique em OK.
gcloud
Use o comando gcloud sql users set-password
da seguinte forma para definir a senha do usuário padrão.
Substitua INSTANCE_NAME pelo nome da instância antes de executar o comando.
gcloud sql users set-password root \ --host=% \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
Para atualizar a senha da conta de usuário padrão, use uma solicitação PUT com o método users:update.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância buscada
- password: a senha do usuário
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=root&host=%25
Corpo JSON da solicitação:
{ "name": "root", "password": "password" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "[email protected]", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "UPDATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Para atualizar a senha da conta de usuário padrão, use uma solicitação PUT com o método users:update.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância buscada
- password: a senha do usuário
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=root&host=%25
Corpo JSON da solicitação:
{ "name": "root", "password": "password" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "[email protected]", "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" }
Criar um usuário
Depois de configurar a conta de usuário padrão, é possível criar outros usuários.
Console
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Clique em Adicionar conta de usuário.
Na página Adicionar uma conta de usuário à instância instance_name, você pode escolher se o usuário se autentica com o método de banco de dados integrado (nome de usuário e senha) ou como um usuário do IAM.
- Selecione Autenticação integrada (padrão) e adicione as seguintes informações:
- Um Nome de usuário
- Opcional. uma Senha Forneça uma senha forte que você consiga lembrar.
- Opcional. A política de senha do usuário
- Na seção Nome do host, o padrão é Permitir qualquer host, o que significa que o usuário pode se conectar de qualquer endereço IP. Opcionalmente, selecione Restringir host por endereço IP ou intervalo de endereços e insira um endereço IP ou intervalo de endereços na seção Host. Assim, o usuário só poderá se conectar pelo endereço IP especificado.
- Clique em Adicionar.
Os usuários criados em instâncias que usam o MySQL 8.0 ou mais recente e o método de autenticação do Cloud SQL recebem o papel cloudsqlsuperuser
automaticamente e têm os seguintes privilégios associados a ele: CREATEROLE
, CREATEDB
e LOGIN
.
Os usuários criados em instâncias que usam o MySQL 5.7 e o método de autenticação do Cloud SQL recebem todos os privilégios, exceto FILE
e SUPER
, automaticamente. Se você precisar alterar os
privilégios desses usuários, use o comando
GRANT ou
REVOKE no
mysql
cliente.
Para mais informações sobre essas contas de usuário e privilégios, consulte Outras contas de usuário do MySQL.
gcloud
Para criar um usuário, use o comando gcloud sql users create
.
Substitua:
- USER_NAME: o nome de usuário.
- HOST: o nome do host do usuário como um endereço IP específico, intervalo de endereços ou qualquer host (
%
). - INSTANCE_NAME: o nome da instância
- PASSWORD: a senha do usuário.
gcloud sql users create USER_NAME \ --host=HOST \ --instance=INSTANCE_NAME \ --password=PASSWORD
Os usuários criados em instâncias que usam o MySQL 8.0 ou mais recente e o método de autenticação do Cloud SQL recebem o papel cloudsqlsuperuser
automaticamente e têm os seguintes privilégios associados a ele: CREATEROLE
, CREATEDB
e LOGIN
.
Os usuários criados em instâncias que usam o MySQL 5.7 e o método de autenticação do Cloud SQL recebem todos os privilégios, exceto FILE
e SUPER
, automaticamente. Se você precisar alterar os
privilégios desses usuários, use o comando
GRANT ou
REVOKE no
mysql
cliente.
Para mais informações sobre essas contas de usuário e privilégios, consulte Outras contas de usuário do MySQL.
Os limites de tamanho de nome de usuário são os mesmos do Cloud SQL e do MySQL no local. O limite é de 32 caracteres no MySQL 8.0 e posteriores e 16 caracteres nas versões anteriores.
Ao criar um usuário, é possível adicionar parâmetros da política de senha do usuário.
Terraform
Para criar um usuário, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform a um projeto do Google Cloud , siga as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra o projeto Google Cloud para conferir os resultados. No console Google Cloud , navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo
yes
no prompt:terraform destroy
REST v1
Para criar um usuário, utilize uma solicitação POST com o método users:insert.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância buscada
- user-id: o ID do usuário
- password: a senha do usuário
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
Corpo JSON da solicitação:
{ "name": "user-id", "password": "password" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "[email protected]", "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" }
Os usuários criados em instâncias que usam o MySQL 8.0 ou mais recente e o método de autenticação do Cloud SQL recebem o papel cloudsqlsuperuser
automaticamente e têm os seguintes privilégios associados a ele: CREATEROLE
, CREATEDB
e LOGIN
.
Os usuários criados em instâncias que usam o MySQL 5.7 e o método de autenticação do Cloud SQL recebem todos os privilégios, exceto FILE
e SUPER
, automaticamente. Se você precisar alterar os
privilégios desses usuários, use o comando
GRANT ou
REVOKE no
mysql
cliente.
Para mais informações sobre essas contas de usuário e privilégios, consulte Outras contas de usuário do MySQL.
Os limites de tamanho de nome de usuário são os mesmos do Cloud SQL e do MySQL no local. O limite é de 32 caracteres no MySQL 8.0 e posteriores e 16 caracteres nas versões anteriores.
Ao criar um usuário, é possível adicionar parâmetros da política de senha do usuário.
REST v1beta4
Para criar um usuário, utilize uma solicitação POST com o método users:insert.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância buscada
- user-id: o ID do usuário
- password: a senha do usuário
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
Corpo JSON da solicitação:
{ "name": "user-id", "password": "password" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "[email protected]", "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" }
Os usuários criados em instâncias que usam o MySQL 8.0 ou mais recente e o método de autenticação do Cloud SQL recebem o papel cloudsqlsuperuser
automaticamente e têm os seguintes privilégios associados a ele: CREATEROLE
, CREATEDB
e LOGIN
.
Os usuários criados em instâncias que usam o MySQL 5.7 e o método de autenticação do Cloud SQL recebem todos os privilégios, exceto FILE
e SUPER
, automaticamente. Se você precisar alterar os
privilégios desses usuários, use o comando
GRANT ou
REVOKE no
mysql
cliente.
Para mais informações sobre essas contas de usuário e privilégios, consulte Outras contas de usuário do MySQL.
Os limites de tamanho de nome de usuário são os mesmos do Cloud SQL e do MySQL no local. O limite é de 32 caracteres no MySQL 8.0 e posteriores e 16 caracteres nas versões anteriores.
Ao criar um usuário, é possível adicionar parâmetros da política de senha do usuário.
Cliente MySQL
- Para criar um usuário, na solicitação
mysql
, use a seguinte instrução CREATE USER:CREATE USER 'USER_NAME'@'%' IDENTIFIED BY 'PASSWORD';
Também é possível adicionar os parâmetros da política de senha do usuário.
- Confirme a criação do usuário exibindo a tabela de usuários:
Em uma instância de segunda geração, a saída é semelhante a este exemplo:SELECT user, host FROM mysql.user;
+----------+-----------+ | user | host | +----------+-----------+ | root | % | | newuser | % | +----------+-----------+ 1 row in set (0.01 sec)
- Forneça os privilégios ao usuário com a instrução
GRANT
(em inglês). Para mais informações, consulte os Privilégios fornecidos pelo MySQL (em inglês). - Limpe a tabela
mysql.user
para garantir que a alteração persista:FLUSH TABLES mysql.user;
Definir uma política de senha do usuário
É possível definir uma política de senha com o tipo de autenticação integrado.
Console
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Clique em "Mais ações"
para o usuário cuja política você quer alterar.
- Selecione Editar política de senha.
- Na seção Política de senha, selecione uma ou mais das
seguintes opções:
- Definir a senha para expirar: especifica o número de dias após o qual a senha expira e o usuário precisa criar uma nova.
- Bloquear após tentativas malsucedidas: especifica o número de vezes que
um usuário pode tentar a senha de forma incorreta antes do bloqueio da conta.
Compatível apenas com o Cloud SQL para MySQL 8.0 e versões mais recentes.
- Exigir senha atual quando a senha for alterada: exige que os usuários insiram a senha ao tentar alterá-la.
gcloud
Para definir a política de senha do usuário, use o comando
gcloud sql users set-password-policy
.
Use o --password-policy-enable-password-verification
para tornar
obrigatório a inserção da senha dos usuários quando eles tentarem mudar
a senha. Para desativar esse parâmetro, use --no-password-policy-enable-password-verification
.
Substitua:
- USER_NAME: o nome de usuário.
- INSTANCE_NAME: o nome da instância
- HOST: o nome do host do usuário como um endereço IP específico, intervalo de endereços ou qualquer host (
%
). - PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS (opcional): o número de vezes que um usuário pode tentar a senha incorretamente antes de a conta ser bloqueada. Use
--password-policy-enable-failed-attempts-check
para ativar e--no-password-policy-enable-failed-attempts-check
para desativar a verificação. - PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION (opcional): especifica o número de dias após o qual a senha expira e o usuário precisa criar uma nova.
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 \ --password-policy-enable-password-verification
Para remover uma política de senha do usuário, use o parâmetro --clear-password-policy
.
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
Para ver a política de senha do usuário, consulte Listar usuários.
REST v1
Para definir uma política de senha do usuário, use uma solicitação PUT com o método users:update.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: ID do projeto;
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do usuário
- PASSWORD: a senha do usuário
- FAILED_ATTEMPTS_CHECK: defina como
true
para ativar uma verificação do número de tentativas malsucedidas de login após as quais a conta é bloqueada - NUMBER_OF_ATTEMPTS: o número de tentativas malsucedidas de login após as quais a conta é bloqueada
- PASSWORD_EXPIRATION_DURATION: o número de dias após o qual a senha expira e o usuário precisa criar uma nova
- VERIFY_PASSWORD: defina como
true
para tornar obrigatório os usuários inserirem as senhas deles ao tentar mudá-las
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON da solicitação:
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK", "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS", "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION", "enablePasswordVerification" : "VERIFY_PASSWORD" } }, } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Para ver a política de senha do usuário, consulte Listar usuários.
REST v1beta4
Para definir uma política de senha do usuário, use uma solicitação PUT com o método users:update.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: ID do projeto;
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do usuário
- PASSWORD: a senha do usuário
- FAILED_ATTEMPTS_CHECK: defina como
true
para ativar uma verificação do número de tentativas malsucedidas de login após as quais a conta é bloqueada - NUMBER_OF_ATTEMPTS: o número de tentativas malsucedidas de login após as quais a conta é bloqueada
- PASSWORD_EXPIRATION_DURATION: o número de dias após o qual a senha expira e o usuário precisa criar uma nova
- VERIFY_PASSWORD: defina como
true
para tornar obrigatório os usuários inserirem as senhas deles ao tentar mudá-las
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON da solicitação:
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK", "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS", "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION", "enablePasswordVerification" : "VERIFY_PASSWORD" } }, } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Para ver a política de senha do usuário, consulte Listar usuários.
Cliente MySQL
Para definir uma política de senha do usuário, na solicitação mysql
, use a seguinte instrução
ALTER USER:
ALTER USER USER_NAME FAILED_LOGIN_ATTEMPTS ALLOWED_FAILED_ATTEMPTS PASSWORD EXPIRE INTERVAL PASSWORD_EXPIRATION_DURATION DAY PASSWORD REQUIRE CURRENT;
Substitua:
- USER_NAME: o nome de usuário.
- ALLOWED_FAILED_ATTEMPTS (opcional): o número de vezes que um usuário pode tentar a senha incorretamente antes de a conta ser bloqueada.
- PASSWORD_EXPIRATION_DURATION (opcional): especifica o número de dias após o qual a senha expira e o usuário precisa criar uma nova.
Use a opção PASSWORD REQUIRE CURRENT
para
exigir que os usuários insiram a senha existente ao tentar mudá-la.
Para ver a política de senha do usuário, consulte Listar usuários.
Listar usuários
Console
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
A lista mostra os tipos
User name
,Host name
eAuthentication
de cada usuário.Além disso, para o tipo de autenticação integrado,
Password status
também é indicado.
gcloud
Use o comando gcloud sql users list para listar os usuários desta instância:
gcloud sql users list \ --instance=INSTANCE_NAME
O comando retorna Name
, Host
e
a autenticação Type
para cada usuário.
Além disso, para o tipo de autenticação integrado, as configurações e o status da política de senha são retornados. Por exemplo:
NAME HOST TYPE PASSWORD_POLICY user1 BUILT_IN {'allowedFailedAttempts': 2, 'enableFailedAttemptsCheck': True, 'passwordExpirationDuration': '7d', 'status': { 'locked': True, 'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z' } }
REST v1
Para listar os usuários definidos para uma instância, use uma solicitação GET com o método users:list.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância buscada
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" ] } }, { ... }, { ... } ] }
Se uma política de senha do usuário tiver sido definida, a seção items
da resposta incluirá uma seção passwordPolicy
. O exemplo de código a seguir mostra a seção passwordPolicy
.
{ ... "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : true, "allowedFailedAttempts" : 8, "passwordExpirationDuration" : "7d", "enablePasswordVerification" : true } }, ... }
REST v1beta4
Para listar os usuários definidos para uma instância, use uma solicitação GET com o método users:list.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância buscada
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" ] } }, { ... }, { ... } ] }
Se uma política de senha do usuário tiver sido definida, a seção items
da resposta incluirá uma seção passwordPolicy
. O exemplo de código a seguir mostra a seção passwordPolicy
.
{ ... "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : true, "allowedFailedAttempts" : 8, "passwordExpirationDuration" : "7d", "enablePasswordVerification" : true } }, ... }
Cliente MySQL
Para listar usuários do MySQL, no prompt mysql
, use a seguinte instrução
SELECT:
SELECT user, host FROM mysql.user;
Em uma instância de segunda geração com apenas a conta de usuário root
configurada, a saída é semelhante a este exemplo:
+------+-----------+ | user | host | +------+-----------+ | root | % | +------+-----------+ 1 row in set (0.01 sec)
Neste exemplo, mostramos os usuários de uma instância com o usuário root
. Este usuário pode se conectar de qualquer host (%
). O campo da senha mostra o hash da senha.
Alterar uma senha de usuário
As senhas de usuário podem ser alteradas de uma das seguintes maneiras.
Console
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Selecione o usuário a ser atualizado e clique em "Mais ações"
.
- Selecione Alterar senha.
- Especifique uma nova senha.
Além disso, se você quiser continuar usando sua senha antiga, selecione a caixa de seleção Manter senha atual.
- Clique em OK.
gcloud
Use o comando gcloud sql users set-password
para alterar uma senha.
Substitua:
- USER_NAME: o nome de usuário.
- HOST: o nome do host do usuário como um endereço IP específico, intervalo de endereços ou qualquer host (
%
). - INSTANCE_NAME: o nome da instância
- PASSWORD: uma senha. Ela precisa atender aos requisitos das políticas de senha, se definidos.
Opcionalmente, para o MySQL 8.0 e versões mais recentes, você pode continuar permitindo que o usuário use a senha
mais antiga com a opção --retain-password
. Para descartar a
senha antiga, use a opção --discard-dual-password
.
gcloud sql users set-password USER_NAME \ --host=HOST \ --instance=INSTANCE_NAME \ --password=PASSWORD
REST v1
Para alterar uma senha de usuário, utilize uma solicitação PUT com o método users:update.
A solicitação a seguir atualiza a senha da conta de usuário user_name'@'%
. Se seu usuário tiver um host diferente, você precisará
modificar a chamada com o host correto.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância buscada
- user-id: o ID do usuário
- password: a nova senha do usuário
- dual-password: um destes valores de enumeração:
DUAL_PASSWORD
: o usuário pode continuar usando a senha antiga.NO_DUAL_PASSWORD
: o usuário não pode usar a senha mais antiga.NO_MODIFY_DUAL_PASSWORD
: o status da senha dupla permanece inalterado.
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id
Corpo JSON da solicitação:
{ "name": "user-id", "password": "password", "retainedPassword" : "dual-password" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "[email protected]", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "UPDATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Para alterar uma senha de usuário, utilize uma solicitação PUT com o método users:update.
A solicitação a seguir atualiza a senha da conta de usuário user_name'@'%
. Se seu usuário tiver um host diferente, você precisará
modificar a chamada com o host correto.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância buscada
- user-id: o ID do usuário
- password: a nova senha do usuário
- dual-password: um destes valores de enumeração:
DUAL_PASSWORD
: o usuário pode continuar usando a senha antiga.NO_DUAL_PASSWORD
: o usuário não pode usar a senha mais antiga.NO_MODIFY_DUAL_PASSWORD
: o status da senha dupla permanece inalterado.
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id
Corpo JSON da solicitação:
{ "name": "user-id", "password": "password", "retainedPassword" : "dual-password" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "[email protected]", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "UPDATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Cliente MySQL
- Para alterar a senha, na solicitação
mysql
, use a seguinte instrução SET PASSWORD:SET PASSWORD FOR USER_NAME = PASSWORD('auth_string');
- Limpe a tabela
mysql.user
para garantir que a alteração persista:FLUSH TABLES mysql.user;
Se um usuário estiver bloqueado devido às configurações de política de senha, mude a senha para desbloqueá-lo. Confirme que as senhas, quando alteradas, sigam a política de senhas.
Remover uma política de senha do usuário
É possível remover uma política de senha de um usuário que tem o tipo de autenticação integrado.
gcloud
Para remover a política de senha do usuário, use o comando gcloud sql users set-password-policy
e o parâmetro --clear-password-policy
.
Substitua:
- USER_NAME: o nome de usuário
- INSTANCE_NAME: o nome da instância.
- HOST: o nome do host do usuário como um endereço IP específico, intervalo de endereços ou qualquer host (
%
)
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
REST v1
Para remover uma política de senha do usuário, use uma solicitação PUT com o método users:update.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: ID do projeto;
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do usuário
- PASSWORD: a senha do usuário
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON da solicitação:
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : {} } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
REST v1beta4
Para remover uma política de senha do usuário, use uma solicitação PUT com o método users:update.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: ID do projeto;
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do usuário
- PASSWORD: a senha do usuário
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON da solicitação:
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : {} } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Remover um usuário
O usuário padrão pode remover usuários.
Antes de remover um usuário, você precisa descartar todos os objetos que são da propriedade dele ou reatribuir a propriedade e revogar os privilégios concedidos ao papel em outros objetos.
Console
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Selecione o usuário a ser removido e clique em Mais ações
.
- Selecione Remover e, em seguida, selecione Remover novamente.
gcloud
Use o comando gcloud sql users delete
para remover um usuário.
Substitua:
- USER_NAME: o nome de usuário.
- HOST: o nome do host do usuário como um endereço IP específico, intervalo de endereços ou qualquer host (
%
). - INSTANCE_NAME: o nome da instância
gcloud sql users delete USER_NAME \ --host=HOST \ --instance=INSTANCE_NAME
REST v1
A solicitação abaixo usa o método users:delete para excluir a conta de usuário especificada.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância buscada
- USERNAME: o endereço de e-mail do usuário ou da conta de serviço
Método HTTP e URL:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "DONE", "user": "[email protected]", "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
A solicitação abaixo usa o método users:delete para excluir a conta de usuário especificada.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância buscada
- USERNAME: o endereço de e-mail do usuário ou da conta de serviço
Método HTTP e URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "DONE", "user": "[email protected]", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "DELETE_USER", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Cliente MySQL
- Para excluir um usuário, na solicitação
mysql
, use a seguinte instrução DROP USER:DROP USER 'USER_NAME'@'HOST_NAME';
- Limpe a tabela
mysql.user
para garantir que a alteração persista:FLUSH TABLES mysql.user;
Atualizar as propriedades do usuário
Para atualizar as propriedades do usuário, como host ou privilégios, use o clientemysql
. Para mais informações, consulte Gerenciamento de contas de usuário do MySQL (em inglês) na documentação do MySQL.
A seguir
- Saiba mais sobre como o Cloud SQL funciona com os usuários.
- Leia a documentação do MySQL sobre a criação do usuário.
- Saiba mais sobre como se conectar a instâncias.