Nesta página, mostramos como realizar as ações a seguir em instâncias do Cloud SQL:
- Configurar a conta de usuário padrão.
- Criar, excluir e atualizar outras contas de usuário.
Para mais informações sobre como os usuários trabalham com o Cloud SQL, consulte Usuários do MySQL.
Antes de começar
Antes de concluir as tarefas abaixo, crie uma instância do Cloud SQL. Para saber mais, consulte o artigo Criar instâncias.
Se você planeja usar o cliente administrativo de seu banco de dados para gerenciar usuários, é preciso ter configurado o usuário padrão na instância. Para mais informações, consulte Como configurar a conta padrão.
Além disso, você precisa ter configurado um cliente administrativo conectado à sua instância. Para mais informações, consulte Opções de conexão para aplicativos externos.Configurar a conta de usuário padrão
Ao criar uma nova instância do Cloud SQL, você precisa configurar a conta de usuário padrão para poder se conectar à instância.
No Cloud SQL para MySQL, o usuário padrão éroot@%
.Para configurar o usuário padrão:
Console
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Clique na instância para abrir a respectiva página "Visão geral".
- Selecione Usuários no menu de navegação.
- Localize o usuário
root
com o valor de host% (any host)
e selecione Alterar senha no menu "Mais ações".
- Forneça uma senha forte que você consiga lembrar posteriormente e clique em OK.
gcloud
Defina a senha do usuário padrão:
gcloud sql users set-password root \ --host=% --instance=[INSTANCE_NAME] --prompt-for-password
REST v1beta4
A solicitação a seguir usa o método users:update para atualizar a conta de usuário raiz.
('root'@'%'
).
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://www.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://www.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://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Criar um usuário
Para criar um usuário:
Console
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Selecione a instância para abrir a página "Visão geral" correspondente.
- Selecione Usuários no menu de navegação.
- Clique em ADICIONAR USUÁRIO.
- Na página Adicionar uma conta de usuário à instância instance_name,
adicione as seguintes informações:
- Um Nome de usuário.
- uma Senha
Opcionalmente, um Host
O padrão é "%", o que significa que a lista de hosts não é restrita. Também é possível fornecer um endereço IP ou intervalo de endereços IP, o que significa que apenas os usuários que se conectarem a partir desses endereços poderão acessar o banco de dados.
- Clique em Criar.
Os usuários criados com o Cloud SQL têm os privilégios associados
ao papel cloudsqlsuperuser
: CREATEROLE
,
CREATEDB
e LOGIN
. Um usuário criado por esses
usuários pode ter privilégios de conexão ao banco de dados, o que pode impedir que ele
seja excluído.
Os usuários criados com o Cloud SQL têm todos os privilégios, exceto FILE
e SUPER
. Se você precisar alterar os privilégios de um usuário, use o comando GRANT ou REVOKE no cliente mysql
.
gcloud
Crie o usuário:
gcloud sql users create [user_name] \ --host=[HOST] --instance=[INSTANCE_NAME] --password=[PASSWORD]
Os usuários criados com o Cloud SQL têm os privilégios associados
ao papel cloudsqlsuperuser
: CREATEROLE
,
CREATEDB
e LOGIN
. Um usuário criado por esses
usuários pode ter privilégios de conexão ao banco de dados, o que pode impedir que ele
seja excluído.
Os usuários criados com o Cloud SQL têm todos os privilégios, exceto FILE
e SUPER
. Se você precisar alterar os privilégios de um usuário, use o comando GRANT ou REVOKE no cliente 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 16 caracteres nas versões anteriores.
REST v1beta4
A solicitação abaixo usa o método users:insert para criar uma conta de usuário "user_name".
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://www.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://www.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://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Os usuários criados com o Cloud SQL têm os privilégios associados
ao papel cloudsqlsuperuser
: CREATEROLE
,
CREATEDB
e LOGIN
. Um usuário criado por esses
usuários pode ter privilégios de conexão ao banco de dados, o que pode impedir que ele
seja excluído.
Os usuários criados com o Cloud SQL têm todos os privilégios, exceto FILE
e SUPER
. Se você precisar alterar os privilégios de um usuário, use o comando GRANT ou REVOKE no cliente 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 16 caracteres nas versões anteriores.
Cliente MySQL
- No prompt
mysql
, crie o usuário:CREATE USER '[USER_NAME]'@'%' IDENTIFIED BY '[PASSWORD]';
- Confirme a criação do usuário exibindo a tabela de usuários:
SELECT user, host FROM mysql.user;
Em uma instância de segunda geração, a saída é semelhante a este exemplo:+----------+-----------+ | user | host | +----------+-----------+ | root | % | | newuser | % | +----------+-----------+ 1 row in set (0.01 sec)
- Forneça os privilégios ao usuário com a instrução
GRANT
(em inglês). Para mais informações, consulte os Privilégios fornecidos pelo MySQL (em inglês). - Limpe a tabela
mysql.user
para garantir que a alteração persista:FLUSH TABLES mysql.user;
Alterar uma senha de usuário
Para alterar uma senha de usuário:
Console
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Selecione a instância para abrir a página "Visão geral" correspondente.
- Selecione Usuários no menu de navegação.
- Selecione o usuário a ser atualizado e clique em "Mais ações"
.
- Selecione Alterar senha, especifique uma nova senha e clique em OK.
gcloud
Atualize a senha:
gcloud sql users set-password [USER_NAME] \ --host=[HOST] --instance=[INSTANCE_NAME] --prompt-for-password
REST v1beta4
A solicitação a seguir usa o método users:update para atualizar a senha da conta de usuário user_name'@'%'
. Se seu usuário tiver um host diferente, você deverá 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 senha do usuário
Método HTTP e URL:
PUT https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id
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://www.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://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Cliente MySQL
- No prompt
mysql
, altere a senha:SET PASSWORD FOR [USER] = PASSWORD('auth_string');
- Limpe a tabela
mysql.user
para garantir que a alteração persista:FLUSH TABLES mysql.user;
Atualizar usuários
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.
Listar usuários
Para listar usuários:
Console
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Selecione a instância para abrir a página "Visão geral" correspondente.
- Selecione Usuários no menu de navegação.
gcloud
Liste os usuários desta instância:
gcloud sql users list --instance=[INSTANCE_NAME]
Para ver uma lista completa de parâmetros desse comando, consulte a página de referência de gcloud sql users list.
REST v1beta4
A solicitação abaixo usa o método users:list para listar os usuários definidos para uma instância.
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://www.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" ] } }, { ... }, { ... } ] }
Cliente MySQL
No prompt mysql
, liste os usuários do MySQL:
SELECT user, host FROM mysql.user;
Em uma instância de segunda geração com apenas a conta de usuário raiz configurada, a saída é semelhante a este exemplo:
+------+-----------+ | user | host | +------+-----------+ | root | % | +------+-----------+ 1 row in set (0.01 sec)
Este exemplo mostra os usuários de uma instância na qual o usuário 'root'@'%' foi adicionado. O campo da senha mostra o hash da senha.
Excluir usuários
Para excluir um usuário:
Antes de excluir 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
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Selecione a instância para abrir a página "Visão geral" correspondente.
- Selecione Usuários no menu de navegação.
- Selecione o usuário a ser excluído e clique em "Mais ações"
.
- Selecione Excluir e clique em OK.
gcloud
Exclua o usuário:
gcloud sql users delete [USER_NAME] --host=[HOST] --instance=[INSTANCE_NAME]
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
- user-id: o ID do usuário
Método HTTP e URL:
DELETE https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=&name=user-id
Corpo JSON da solicitação:
{ "name": "user-id", "host": "" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://www.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://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Cliente MySQL
- No prompt
mysql
, exclua o usuário:DROP USER '[USER_NAME]'@'[HOST_NAME]';
Para mais informações sobre a instrução
DROP USER
, consulte a documentação do MySQL (em inglês). - Limpe a tabela
mysql.user
para garantir que a alteração persista:FLUSH TABLES mysql.user;
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.