Esta página descreve como ativar e usar a autenticação integrada do Cloud SQL.
Para uma vista geral, consulte o artigo Autenticação de base de dados incorporada do Cloud SQL.Antes de criar utilizadores
- Crie uma instância do Cloud SQL. Para mais informações, consulte o artigo Crie instâncias.
- Ative as políticas de palavras-passe para a instância. Para mais informações, consulte as políticas de palavras-passe de instâncias.
Se planeia usar o cliente administrativo da sua base de dados para gerir utilizadores, faça o seguinte:
Associe o cliente à sua instância. Consulte as Opções de ligação para aplicações externas.
Configure o utilizador predefinido na instância definindo a palavra-passe. Consulte o artigo Defina a palavra-passe da conta de utilizador predefinida.
Defina a palavra-passe da conta de utilizador predefinida
Quando cria uma nova instância do Cloud SQL, tem de definir uma palavra-passe para a conta de utilizador predefinida antes de poder estabelecer ligação à instância.
Para o Cloud SQL para MySQL, o utilizador predefinido éroot@%. Isto significa um utilizador da base de dados com o nome de utilizador root que pode estabelecer ligação a partir de qualquer anfitrião (@%).
Consola
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Selecione Utilizadores no menu de navegação do SQL.
- Encontre o utilizador
roote, em seguida, selecione Alterar palavra-passe no menu de mais ações
.
Considere as estipulações indicadas para a palavra-passe, que são derivadas da política de palavras-passe definida para a instância.
- Introduza uma palavra-passe forte de que se consiga lembrar e clique em OK.
gcloud
Use o comando
gcloud sql users set-password da seguinte forma para definir a palavra-passe do utilizador predefinido.
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 palavra-passe da conta de utilizador predefinida, use um pedido PUT com o método users:update.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: o ID de instância pretendido
- password: a palavra-passe do utilizador
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=root&host=%25
Corpo JSON do pedido:
{
"name": "root",
"password": "password"
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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 palavra-passe da conta de utilizador predefinida, use um pedido PUT com o método users:update.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: o ID de instância pretendido
- password: a palavra-passe do utilizador
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 do pedido:
{
"name": "root",
"password": "password"
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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"
}
Crie um utilizador
Depois de configurar a conta de utilizador predefinida, pode criar outros utilizadores.
Consola
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Selecione Utilizadores no menu de navegação do SQL.
- Clique em Adicionar conta de utilizador.
Na página Adicione uma conta de utilizador à instância instance_name, pode escolher se o utilizador se autentica com o método da base de dados incorporada (nome de utilizador e palavra-passe) ou como um utilizador do IAM.
- Selecione Autenticação integrada (a predefinição) e adicione as
seguintes informações:
- Um nome de utilizador.
- Opcional. Uma palavra-passe. Indique uma palavra-passe forte de que se consiga lembrar.
- Opcional. A política de palavras-passe do utilizador.
- Na secção Nome do anfitrião, a predefinição é Permitir qualquer anfitrião, o que significa que o utilizador pode estabelecer ligação a partir de qualquer endereço IP. Opcionalmente, selecione Restringir anfitrião por endereço IP ou intervalo de endereços e introduza um endereço IP ou um intervalo de endereços na secção Anfitrião. O utilizador só pode estabelecer ligação a partir do endereço IP ou dos endereços especificados.
- Clique em Adicionar.
Os utilizadores criados em instâncias que usam o MySQL 8.0 ou posterior e o método de autenticação do Cloud SQL
recebem automaticamente a função cloudsqlsuperuser e têm os seguintes privilégios
associados a esta função: CREATEROLE, CREATEDB e LOGIN.
Os utilizadores criados em instâncias que usam o MySQL 5.7 e o método de autenticação do Cloud SQL recebem automaticamente todos os privilégios, exceto FILE e SUPER. Se precisar de alterar os
privilégios destes utilizadores, use o comando
GRANT ou
REVOKE no cliente
mysql.
Para mais informações acerca destas contas de utilizador e privilégios, consulte Outras contas de utilizador do MySQL.
gcloud
Para criar um utilizador, use o comando
gcloud sql users create.
Substitua o seguinte:
- USER_NAME: o nome de utilizador.
- HOST: o nome do anfitrião do utilizador como um endereço IP específico, um intervalo de endereços ou qualquer anfitrião (
%). - INSTANCE_NAME: o nome da instância.
- PASSWORD: a palavra-passe do utilizador.
gcloud sql users create USER_NAME \ --host=HOST \ --instance=INSTANCE_NAME \ --password=PASSWORD
Os utilizadores criados em instâncias que usam o MySQL 8.0 ou posterior e o método de autenticação do Cloud SQL
recebem automaticamente a função cloudsqlsuperuser e têm os seguintes privilégios
associados a esta função: CREATEROLE, CREATEDB e LOGIN.
Os utilizadores criados em instâncias que usam o MySQL 5.7 e o método de autenticação do Cloud SQL recebem automaticamente todos os privilégios, exceto FILE e SUPER. Se precisar de alterar os
privilégios destes utilizadores, use o comando
GRANT ou
REVOKE no cliente
mysql.
Para mais informações acerca destas contas de utilizador e privilégios, consulte Outras contas de utilizador do MySQL.
Os limites de comprimento dos nomes de utilizador são os mesmos para o Cloud SQL e para o MySQL no local: 32 carateres para o MySQL 8.0 e posterior, e 16 carateres para as versões anteriores.
Quando cria um utilizador, pode adicionar parâmetros da política de palavras-passe do utilizador.
Terraform
Para criar um utilizador, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
-
No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf, por exemplo,main.tf. Neste tutorial, o ficheiro é denominadomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tfcriado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
-
Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade:terraform init -upgrade
Aplique as alterações
-
Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expetativas:
terraform plan
Faça correções à configuração conforme necessário.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yesno comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
Eliminar as alterações
Para eliminar as alterações, faça o seguinte:
- Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento
deletion_protectioncomofalse.deletion_protection = "false"
- Aplique a configuração do Terraform atualizada executando o seguinte comando e
introduzindo
yesno comando:terraform apply
-
Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo
yesno comando:terraform destroy
REST v1
Para criar um utilizador, use um pedido POST com o método users:insert.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: o ID de instância pretendido
- user-id: O ID do utilizador
- password: a palavra-passe do utilizador
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
Corpo JSON do pedido:
{
"name": "user-id",
"password": "password"
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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 utilizadores criados em instâncias que usam o MySQL 8.0 ou posterior e o método de autenticação do Cloud SQL
recebem automaticamente a função cloudsqlsuperuser e têm os seguintes privilégios
associados a esta função: CREATEROLE, CREATEDB e LOGIN.
Os utilizadores criados em instâncias que usam o MySQL 5.7 e o método de autenticação do Cloud SQL recebem automaticamente todos os privilégios, exceto FILE e SUPER. Se precisar de alterar os
privilégios destes utilizadores, use o comando
GRANT ou
REVOKE no cliente
mysql.
Para mais informações acerca destas contas de utilizador e privilégios, consulte Outras contas de utilizador do MySQL.
Os limites de comprimento dos nomes de utilizador são os mesmos para o Cloud SQL e para o MySQL no local: 32 carateres para o MySQL 8.0 e posterior, e 16 carateres para as versões anteriores.
Quando cria um utilizador, pode adicionar parâmetros da política de palavras-passe do utilizador.
REST v1beta4
Para criar um utilizador, use um pedido POST com o método users:insert.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: o ID de instância pretendido
- user-id: O ID do utilizador
- password: a palavra-passe do utilizador
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
Corpo JSON do pedido:
{
"name": "user-id",
"password": "password"
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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 utilizadores criados em instâncias que usam o MySQL 8.0 ou posterior e o método de autenticação do Cloud SQL
recebem automaticamente a função cloudsqlsuperuser e têm os seguintes privilégios
associados a esta função: CREATEROLE, CREATEDB e LOGIN.
Os utilizadores criados em instâncias que usam o MySQL 5.7 e o método de autenticação do Cloud SQL recebem automaticamente todos os privilégios, exceto FILE e SUPER. Se precisar de alterar os
privilégios destes utilizadores, use o comando
GRANT ou
REVOKE no cliente
mysql.
Para mais informações acerca destas contas de utilizador e privilégios, consulte Outras contas de utilizador do MySQL.
Os limites de comprimento dos nomes de utilizador são os mesmos para o Cloud SQL e para o MySQL no local: 32 carateres para o MySQL 8.0 e posterior, e 16 carateres para as versões anteriores.
Quando cria um utilizador, pode adicionar parâmetros da política de palavras-passe do utilizador.
Cliente mysql
- Para criar um utilizador, na linha de comandos
mysql, use a seguinte declaração CREATE USER:CREATE USER 'USER_NAME'@'%' IDENTIFIED BY 'PASSWORD';
Opcionalmente, adicione os parâmetros da política de palavra-passe do utilizador.
- Pode confirmar a criação do utilizador apresentando a tabela de utilizadores:
Para uma instância de segunda geração, o resultado tem um aspeto semelhante a este exemplo:SELECT user, host FROM mysql.user;
+----------+-----------+ | user | host | +----------+-----------+ | root | % | | newuser | % | +----------+-----------+ 1 row in set (0.01 sec)
- Conceda privilégios ao utilizador com a declaração
GRANT. Para mais informações, consulte o artigo Privilégios fornecidos pelo MySQL. -
Limpe a tabela
mysql.userpara garantir que a alteração persiste:FLUSH TABLES mysql.user;
Defina uma política de palavras-passe do utilizador
Pode definir uma política de palavras-passe com o tipo de autenticação incorporado.
Consola
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Selecione Utilizadores no menu de navegação do SQL.
- Clique em mais ações
para o utilizador cuja política quer alterar. - Selecione Editar política de palavras-passe.
- Na secção Política de palavras-passe, selecione uma ou mais das
seguintes opções:
- Definir expiração da palavra-passe: especifica o número de dias após os quais a palavra-passe expira e o utilizador tem de criar uma nova.
- Bloquear após tentativas falhadas: especifica o número de vezes que um utilizador pode tentar a palavra-passe incorretamente antes de a conta ser bloqueada.
Suportado apenas no Cloud SQL para MySQL 8.0 e versões posteriores.
- Exigir palavra-passe atual quando a palavra-passe é alterada: exige que os utilizadores introduzam a palavra-passe existente quando tentam alterá-la.
gcloud
Para definir a política de palavras-passe do utilizador, use o comando
gcloud sql users set-password-policy.
Use o elemento --password-policy-enable-password-verification para tornar obrigatório que os utilizadores introduzam a respetiva palavra-passe existente quando tentam alterar a palavra-passe. Para desativar este parâmetro, use --no-password-policy-enable-password-verification.
Substitua o seguinte:
- USER_NAME: o nome de utilizador.
- INSTANCE_NAME: o nome da instância.
- HOST: o nome do anfitrião do utilizador como um endereço IP específico, um intervalo de endereços ou qualquer anfitrião (
%). - PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS: Opcional: o número de vezes que um utilizador pode tentar a palavra-passe 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 os quais a palavra-passe expira e o utilizador tem de 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 palavras-passe de utilizador, 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 palavras-passe do utilizador, consulte Listar utilizadores.
REST v1
Para definir uma política de palavras-passe de utilizador, use um pedido PUT com o método users:update.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do utilizador
- PASSWORD: a palavra-passe do utilizador
- FAILED_ATTEMPTS_CHECK: definido como
truepara ativar uma verificação do número de tentativas falhadas de início de sessão após as quais a conta é bloqueada - NUMBER_OF_ATTEMPTS: o número de tentativas falhadas de início de sessão após as quais a conta é bloqueada
- PASSWORD_EXPIRATION_DURATION: o número de dias após os quais a palavra-passe expira e o utilizador tem de criar uma nova
- VERIFY_PASSWORD: defina como
truepara tornar obrigatório que os utilizadores introduzam a respetiva palavra-passe existente quando tentam alterar a palavra-passe
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON do pedido:
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
"allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
"passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION",
"enablePasswordVerification" : "VERIFY_PASSWORD"
}
},
}
}Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Para ver a política de palavras-passe do utilizador, consulte Listar utilizadores.
REST v1beta4
Para definir uma política de palavras-passe de utilizador, use um pedido PUT com o método users:update.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do utilizador
- PASSWORD: a palavra-passe do utilizador
- FAILED_ATTEMPTS_CHECK: definido como
truepara ativar uma verificação do número de tentativas falhadas de início de sessão após as quais a conta é bloqueada - NUMBER_OF_ATTEMPTS: o número de tentativas falhadas de início de sessão após as quais a conta é bloqueada
- PASSWORD_EXPIRATION_DURATION: o número de dias após os quais a palavra-passe expira e o utilizador tem de criar uma nova
- VERIFY_PASSWORD: defina como
truepara tornar obrigatório que os utilizadores introduzam a respetiva palavra-passe existente quando tentam alterar a palavra-passe
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON do pedido:
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
"allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
"passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION",
"enablePasswordVerification" : "VERIFY_PASSWORD"
}
},
}
}Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Para ver a política de palavras-passe do utilizador, consulte Listar utilizadores.
Cliente mysql
Para definir uma política de palavras-passe do utilizador, no comando mysql, use a seguinte declaração
ALTER USER:
ALTER USER USER_NAME FAILED_LOGIN_ATTEMPTS ALLOWED_FAILED_ATTEMPTS PASSWORD EXPIRE INTERVAL PASSWORD_EXPIRATION_DURATION DAY PASSWORD REQUIRE CURRENT;
Substitua o seguinte:
- USER_NAME: o nome de utilizador.
- ALLOWED_FAILED_ATTEMPTS: Opcional: o número de vezes que um utilizador pode tentar a palavra-passe incorretamente antes de a conta ser bloqueada.
- PASSWORD_EXPIRATION_DURATION: Opcional: Especifica o número de dias após os quais a palavra-passe expira e o utilizador tem de criar uma nova.
Use a opção PASSWORD REQUIRE CURRENT para tornar obrigatório que os utilizadores introduzam a respetiva palavra-passe existente quando tentam alterar a palavra-passe.
Para ver a política de palavras-passe do utilizador, consulte o artigo Liste utilizadores.
Listar utilizadores
Consola
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Selecione Utilizadores no menu de navegação do SQL.
A lista mostra o
User name, oHost namee o tipoAuthenticationde cada utilizador.Além disso, para o tipo de autenticação incorporada, também é indicado o
Password status.
gcloud
Use o comando gcloud sql users list para listar os utilizadores desta instância:
gcloud sql users list \ --instance=INSTANCE_NAME
O comando devolve o Name, o Host e a
autenticação Type para cada utilizador.
Além disso, para o tipo de autenticação incorporado, são devolvidas as definições e o estado da política de palavras-passe. 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 utilizadores definidos para uma instância, use um pedido GET com o método users:list.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: o ID de instância pretendido
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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 tiver sido definida uma política de palavras-passe do utilizador, a secção items da resposta inclui uma secção passwordPolicy. O seguinte exemplo de código mostra a secção passwordPolicy.
{
...
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : true,
"allowedFailedAttempts" : 8,
"passwordExpirationDuration" : "7d",
"enablePasswordVerification" : true
}
},
...
}
REST v1beta4
Para listar os utilizadores definidos para uma instância, use um pedido GET com o método users:list.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: o ID de instância pretendido
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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 tiver sido definida uma política de palavras-passe do utilizador, a secção items da resposta inclui uma secção passwordPolicy. O seguinte exemplo de código mostra a secção passwordPolicy.
{
...
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : true,
"allowedFailedAttempts" : 8,
"passwordExpirationDuration" : "7d",
"enablePasswordVerification" : true
}
},
...
}
Cliente mysql
Para listar os utilizadores do MySQL, na linha de comandos mysql, use a seguinte declaração
SELECT:
SELECT user, host FROM mysql.user;
Para uma instância de segunda geração com apenas a root conta de utilizador configurada,
o resultado é semelhante ao deste exemplo:
+------+-----------+ | user | host | +------+-----------+ | root | % | +------+-----------+ 1 row in set (0.01 sec)
Este exemplo mostra os utilizadores de uma instância com o utilizador root. Este utilizador pode estabelecer ligação a partir de qualquer anfitrião (%). O campo da palavra-passe mostra o hash da palavra-passe.
Altere a palavra-passe de um utilizador
As palavras-passe dos utilizadores podem ser alteradas de uma das seguintes formas.
Consola
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Selecione Utilizadores no menu de navegação do SQL.
- Clique em mais ações
para o utilizador que quer atualizar.
- Selecione Alterar palavra-passe.
- Especifique uma nova palavra-passe.
Além disso, se quiser continuar a usar a palavra-passe antiga, selecione a caixa de verificação Manter palavra-passe atual.
- Clique em OK.
gcloud
Use o comando
gcloud sql users set-password para alterar uma palavra-passe.
Substitua o seguinte:
- USER_NAME: o nome de utilizador.
- HOST: o nome do anfitrião do utilizador como um endereço IP específico, um intervalo de endereços ou qualquer anfitrião (
%). - INSTANCE_NAME: o nome da instância.
- PASSWORD: Uma palavra-passe. Tem de cumprir os requisitos das políticas de palavras-passe, se estiverem definidas.
Opcionalmente, para o MySQL 8.0 e posterior, pode continuar a permitir que o utilizador use a palavra-passe mais antiga com a opção --retain-password. Para rejeitar a palavra-passe 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 a palavra-passe de um utilizador, use um pedido PUT com o método users:update.
O pedido seguinte atualiza a palavra-passe da conta de utilizador
user_name'@'%. Se o seu utilizador tiver um anfitrião diferente, tem de
modificar a chamada com o anfitrião correto.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: o ID de instância pretendido
- user-id: O ID do utilizador
- password: a nova palavra-passe do utilizador
- dual-password: um destes valores de enumeração:
DUAL_PASSWORD: o utilizador pode continuar a usar a palavra-passe antiga.NO_DUAL_PASSWORD: o utilizador não pode usar a palavra-passe antiga.NO_MODIFY_DUAL_PASSWORD: o estado da palavra-passe 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 do pedido:
{
"name": "user-id",
"password": "password",
"retainedPassword" : "dual-password"
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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 a palavra-passe de um utilizador, use um pedido PUT com o método users:update.
O pedido seguinte atualiza a palavra-passe da conta de utilizador
user_name'@'%. Se o seu utilizador tiver um anfitrião diferente, tem de
modificar a chamada com o anfitrião correto.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: o ID de instância pretendido
- user-id: O ID do utilizador
- password: a nova palavra-passe do utilizador
- dual-password: um destes valores de enumeração:
DUAL_PASSWORD: o utilizador pode continuar a usar a palavra-passe antiga.NO_DUAL_PASSWORD: o utilizador não pode usar a palavra-passe antiga.NO_MODIFY_DUAL_PASSWORD: o estado da palavra-passe 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 do pedido:
{
"name": "user-id",
"password": "password",
"retainedPassword" : "dual-password"
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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 palavra-passe, na linha de comandos
mysql, use a seguinte declaração SET PASSWORD:SET PASSWORD FOR USER_NAME = PASSWORD('auth_string');
- Limpe a tabela
mysql.userpara garantir que a alteração persiste:FLUSH TABLES mysql.user;
Se um utilizador estiver bloqueado devido às definições da política de palavras-passe, altere a palavra-passe para o desbloquear. Certifique-se de que as palavras-passe, quando alteradas, cumprem a política de palavras-passe.
Remova uma política de palavras-passe de utilizadores
Pode remover uma política de palavras-passe de um utilizador que tenha o tipo de autenticação incorporado.
gcloud
Para remover a política de palavras-passe do utilizador, use o comando
gcloud sql users set-password-policy e o parâmetro --clear-password-policy.
Substitua o seguinte:
- USER_NAME: o nome de utilizador
- INSTANCE_NAME: o nome da instância
- HOST: o nome do anfitrião do utilizador como um endereço IP específico, um intervalo de endereços ou qualquer anfitrião (
%)
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
REST v1
Para remover uma política de palavra-passe de utilizador, use um pedido PUT com o método users:update.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do utilizador
- PASSWORD: a palavra-passe do utilizador
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON do pedido:
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {}
}
}Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
REST v1beta4
Para remover uma política de palavra-passe de utilizador, use um pedido PUT com o método users:update.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do utilizador
- PASSWORD: a palavra-passe do utilizador
Método HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON do pedido:
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {}
}
}Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Remova um utilizador
O utilizador predefinido pode remover utilizadores.
Antes de remover um utilizador, tem de eliminar todos os objetos que lhe pertencem ou reatribuir a respetiva propriedade, e revogar todos os privilégios que a função lhe tenha concedido noutros objetos.
Consola
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Selecione Utilizadores no menu de navegação do SQL.
- Clique em mais ações
junto ao utilizador que quer
remover. - Selecione Remover e, de seguida, selecione novamente Remover.
gcloud
Use o comando
gcloud sql users delete para remover um utilizador.
Substitua o seguinte:
- USER_NAME: o nome de utilizador.
- HOST: o nome do anfitrião do utilizador como um endereço IP específico, um intervalo de endereços ou qualquer anfitrião (
%). - INSTANCE_NAME: o nome da instância.
gcloud sql users delete USER_NAME \ --host=HOST \ --instance=INSTANCE_NAME
REST v1
O pedido abaixo usa o método users:delete para eliminar a conta de utilizador especificada.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- INSTANCE_ID: o ID de instância pretendido
- USERNAME: o endereço de email do utilizador 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 o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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
O pedido abaixo usa o método users:delete para eliminar a conta de utilizador especificada.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- INSTANCE_ID: o ID de instância pretendido
- USERNAME: o endereço de email do utilizador 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 o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
"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 eliminar um utilizador, na linha de comandos
mysql, use a seguinte declaração DROP USER:DROP USER 'USER_NAME'@'HOST_NAME';
- Limpe a tabela
mysql.userpara garantir que a alteração persiste:FLUSH TABLES mysql.user;
Atualize propriedades do utilizador
Para atualizar propriedades do utilizador, como o anfitrião ou os privilégios, tem de usar omysql
cliente. Para mais informações, consulte o artigo Gestão de contas de utilizador do MySQL na documentação do MySQL.
O que se segue?
- Saiba mais sobre como o Cloud SQL funciona com os utilizadores.
- Leia a documentação do MySQL sobre a criação de utilizadores.
- Saiba mais sobre como estabelecer ligação a instâncias.