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
root
e, 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.tf
criado 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 as correções necessárias à configuração.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no 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_protection
comofalse
.deletion_protection = "false"
- Aplique a configuração do Terraform atualizada executando o seguinte comando e
introduzindo
yes
no comando:terraform apply
-
Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo
yes
no 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.user
para 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-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 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
true
para 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
true
para 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
true
para 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
true
para 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 name
e o tipoAuthentication
de 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 de 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 de 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.user
para 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.user
para 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.