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 console Google Cloud , 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
roote 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": "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
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": "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"
}
Criar um usuário
Depois de configurar a conta de usuário padrão, é possível criar outros usuários.
Console
-
No console Google Cloud , 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 em um projeto Google Cloud , siga as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto Google Cloud padrão 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.tfrecé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
yesno prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra seu Google Cloud projeto para conferir os resultados. No console do 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_protectioncomofalse.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yesno prompt:terraform apply
-
Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo
yesno 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": "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"
}
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": "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"
}
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.userpara 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 console Google Cloud , 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-checkpara ativar e--no-password-policy-enable-failed-attempts-checkpara 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
truepara 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
truepara 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ê vai 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
truepara 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
truepara 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ê vai 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 console Google Cloud , 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 nameeAuthenticationde cada usuário.Além disso, para o tipo de autenticação integrado,
Password statustambé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 console Google Cloud , 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": "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
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": "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"
}
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.userpara 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ê vai 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ê vai 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 console Google Cloud , 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": "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
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": "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"
}
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.userpara 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.