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 PostgreSQL, o usuário padrão épostgres
.
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Encontre o usuário
postgres
e selecione Alterar senha no menu "Mais ações".
- Forneça uma senha forte, de que se lembre posteriormente, e clique em OK.
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 postgres \ --instance=INSTANCE_NAME \ --prompt-for-password
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
- user-id: o ID do usuário
- 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=user-id
Corpo JSON da solicitação:
{ "name": "user-id ", "password": "password " }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /users?name=user-id "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /users?name=user-id " | Select-Object -Expand Content
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 " }
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
- 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 " }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /users?name=user-id "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /users?name=user-id " | Select-Object -Expand Content
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.
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Clique em Adicionar conta de usuário.
Na página Adicionar uma conta de usuário à instância instance_name, você pode escolher se o usuário se autentica com o método de banco de dados integrado (nome de usuário e senha) ou como um usuário do IAM.
- Selecione Autenticação integrada (padrão) e adicione as seguintes informações:
- Um Nome de usuário
- Opcional. uma Senha Forneça uma senha forte que você consiga lembrar.
- Clique em Adicionar.
Os usuários criados em instâncias que usam o método de autenticação do Cloud SQL recebem o papel cloudsqlsuperuser
automaticamente e têm estes privilégios associados a ele: CREATEROLE
, CREATEDB
e LOGIN
.
Se você precisar alterar os atributos desses usuários, use o comando
ALTER ROLE (em inglês)
no cliente psql
. Nem todos os atributos podem ser
modificados com ALTER ROLE
. As exceções incluem os
papéis NOSUPERUSER
e NOREPLICATION
.
Para criar um usuário, use o comando gcloud sql users create
.
Substitua:
- USER_NAME: o nome de usuário.
- INSTANCE_NAME: o nome da instância
- PASSWORD: a senha do usuário.
gcloud sql users createUSER_NAME \ --instance=INSTANCE_NAME \ --password=PASSWORD
Os usuários criados em instâncias que usam o método de autenticação do Cloud SQL recebem o papel cloudsqlsuperuser
automaticamente e têm estes privilégios associados a ele: CREATEROLE
, CREATEDB
e LOGIN
.
Se você precisar alterar os atributos desses usuários, use o comando
ALTER ROLE (em inglês)
no cliente psql
. Nem todos os atributos podem ser
modificados com ALTER ROLE
. As exceções incluem os
papéis NOSUPERUSER
e NOREPLICATION
.
Os limites de tamanho de nome de usuário são os mesmos no Cloud SQL e no PostgreSQL no local.
Ao criar um usuário, é possível adicionar parâmetros da política de senha do usuário.
Para criar um usuário, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform a um projeto do Google Cloud , siga as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=
PROJECT_ID As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir
DIRECTORY && cdDIRECTORY && touch main.tf -
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra o projeto Google Cloud para conferir os resultados. No console Google Cloud , navegue até seus recursos na interface para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo
yes
no prompt:terraform destroy
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:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /users"
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /users" | Select-Object -Expand Content
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 método de autenticação do Cloud SQL recebem o papel cloudsqlsuperuser
automaticamente e têm estes privilégios associados a ele: CREATEROLE
, CREATEDB
e LOGIN
.
Se você precisar alterar os atributos desses usuários, use o comando
ALTER ROLE (em inglês)
no cliente psql
. Nem todos os atributos podem ser
modificados com ALTER ROLE
. As exceções incluem os
papéis NOSUPERUSER
e NOREPLICATION
.
Os limites de tamanho de nome de usuário são os mesmos no Cloud SQL e no PostgreSQL no local.
Ao criar um usuário, é possível adicionar parâmetros da política de senha do usuário.
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:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /users"
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /users" | Select-Object -Expand Content
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 método de autenticação do Cloud SQL recebem o papel cloudsqlsuperuser
automaticamente e têm estes privilégios associados a ele: CREATEROLE
, CREATEDB
e LOGIN
.
Se você precisar alterar os atributos desses usuários, use o comando
ALTER ROLE (em inglês)
no cliente psql
. Nem todos os atributos podem ser
modificados com ALTER ROLE
. As exceções incluem os
papéis NOSUPERUSER
e NOREPLICATION
.
Os limites de tamanho de nome de usuário são os mesmos no Cloud SQL e no PostgreSQL no local.
Ao criar um usuário, é possível adicionar parâmetros da política de senha do usuário.
- No prompt
psql
, crie o usuário:CREATE USER
USER_NAME WITH PASSWORDPASSWORD ATTRIBUTE1 ATTRIBUTE2 ...;Digite a senha quando solicitada.
Para mais informações sobre os atributos de papéis, consulte a documentação do PostgreSQL.
- Você pode confirmar a criação do usuário exibindo a tabela do usuário:
SELECT * FROM pg_roles;
Definir uma política de senha do usuário
É possível definir uma política de senha com o tipo de autenticação integrado.
Para definir a política de senha do usuário, use o comando
gcloud sql users set-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 (
%
). - PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS (opcional): o número de vezes que um usuário pode tentar a senha incorretamente antes de a conta ser bloqueada. Use
--password-policy-enable-failed-attempts-check
para ativar e--no-password-policy-enable-failed-attempts-check
para desativar a verificação. - PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION (opcional): especifica o número de dias após o qual a senha expira e o usuário precisa criar uma nova.
gcloud sql users set-password-policyUSER_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
Para remover uma política de senha do usuário, use o parâmetro --clear-password-policy
.
gcloud sql users set-password-policyUSER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
Para ver a política de senha do usuário, consulte Listar usuários.
Para definir uma política de senha do usuário, use uma solicitação PUT com o método users:update.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: ID do projeto;
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do usuário
- PASSWORD: a senha do usuário
- FAILED_ATTEMPTS_CHECK: defina como
true
para ativar uma verificação do número de tentativas malsucedidas de login após as quais a conta é bloqueada - NUMBER_OF_ATTEMPTS: o número de tentativas malsucedidas de login após as quais a conta é bloqueada
- PASSWORD_EXPIRATION_DURATION: o número de dias após o qual a senha expira e o usuário precisa criar uma nova
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 " } }, } }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID /instances/INSTANCE_ID /users?name=USER_ID "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID /instances/INSTANCE_ID /users?name=USER_ID " | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Resposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID /instances/INSTANCE_ID ", "status": "DONE", "user": "user@example.com", "insertTime": "2021-11-02T19:12:08.132Z", "startTime": "2021-11-02T19:12:08.132Z", "endTime": "2021-11-02T19:12:09.125Z", "operationType": "UPDATE_USER", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Para ver a política de senha do usuário, consulte Listar usuários.
Para definir uma política de senha do usuário, use uma solicitação PUT com o método users:update.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: ID do projeto;
- INSTANCE_ID: o ID da instância
- USER_ID: o ID do usuário
- PASSWORD: a senha do usuário
- FAILED_ATTEMPTS_CHECK: defina como
true
para ativar uma verificação do número de tentativas malsucedidas de login após as quais a conta é bloqueada - NUMBER_OF_ATTEMPTS: o número de tentativas malsucedidas de login após as quais a conta é bloqueada
- PASSWORD_EXPIRATION_DURATION: o número de dias após o qual a senha expira e o usuário precisa criar uma nova
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 " } }, } }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /users?name=USER_ID "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /users?name=USER_ID " | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Resposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ", "status": "DONE", "user": "user@example.com", "insertTime": "2021-11-02T19:12:08.132Z", "startTime": "2021-11-02T19:12:08.132Z", "endTime": "2021-11-02T19:12:09.125Z", "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 " }
Para ver a política de senha do usuário, consulte Listar usuários.
Listar usuários
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
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' } }
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:
curl (Linux, macOS ou Cloud Shell)
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /users"
PowerShell (Windows)
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /users" | Select-Object -Expand Content
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" } }, ... }
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:
curl (Linux, macOS ou Cloud Shell)
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /users"
PowerShell (Windows)
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /users" | Select-Object -Expand Content
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" } }, ... }
No prompt psql
, liste os usuários do PostgreSQL:
SELECT * FROM pg_roles;
Alterar uma senha de usuário
As senhas de usuário podem ser alteradas de uma das seguintes maneiras.
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Selecione o usuário a ser atualizado e clique em "Mais ações"
.
- Selecione Alterar senha.
- Especifique uma nova senha.
- Clique em OK.
Use o comando gcloud sql users set-password
para alterar uma senha.
Substitua:
- USER_NAME: o nome de usuário.
- INSTANCE_NAME: o nome da instância
gcloud sql users set-passwordUSER_NAME \ --instance=INSTANCE_NAME \ --prompt-for-password
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
.
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
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 " }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /users?name=user-id "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /users?name=user-id " | Select-Object -Expand Content
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 " }
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
.
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
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 " }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /users?name=user-id "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /users?name=user-id " | Select-Object -Expand Content
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 " }
psql
, execute o comando ALTER USER.
- Desbloqueie o usuário.
ALTER USER
USER_NAME WITH LOGIN; - Altere a senha e digite-a quando for solicitada.
ALTER USER
USER_NAME WITH PASSWORDPASSWORD ;
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.
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-policyUSER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
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:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID /instances/INSTANCE_ID /users?name=USER_ID "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID /instances/INSTANCE_ID /users?name=USER_ID " | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Resposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID /instances/INSTANCE_ID ", "status": "DONE", "user": "user@example.com", "insertTime": "2021-11-02T19:12:08.132Z", "startTime": "2021-11-02T19:12:08.132Z", "endTime": "2021-11-02T19:12:09.125Z", "operationType": "UPDATE_USER", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
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:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /users?name=USER_ID "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /users?name=USER_ID " | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Resposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ", "status": "DONE", "user": "user@example.com", "insertTime": "2021-11-02T19:12:08.132Z", "startTime": "2021-11-02T19:12:08.132Z", "endTime": "2021-11-02T19:12:09.125Z", "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 " }
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.
-
No Google Cloud console, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Selecione o usuário a ser removido e clique em Mais ações
.
- Selecione Remover e, em seguida, selecione Remover novamente.
Use o comando gcloud sql users delete
para remover um usuário.
Substitua:
- USER_NAME: o nome de usuário.
- INSTANCE_NAME: o nome da instância
gcloud sql users deleteUSER_NAME \ --instance=INSTANCE_NAME
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:
curl (Linux, macOS ou Cloud Shell)
execute o seguinte comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /users?host=&name=USERNAME "
PowerShell (Windows)
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /users?host=&name=USERNAME " | Select-Object -Expand Content
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 " }
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:
curl (Linux, macOS ou Cloud Shell)
execute o seguinte comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /users?host=&name=USERNAME "
PowerShell (Windows)
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /users?host=&name=USERNAME " | Select-Object -Expand Content
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 " }
- No prompt
psql
, exclua o usuário:DROP ROLE
USER_NAME ;Para mais informações sobre a instrução
DROP ROLE
, consulte a documentação do PostgreSQL.
Atualizar propriedades do usuário
Para atualizar as propriedades do usuário, como atributos, você precisa usar o clientepsql
.
Para mais informações, consulte Papéis de banco de dados na
documentação do PostgreSQL.
A seguir
- Saiba mais sobre como o Cloud SQL funciona com os usuários.
- Leia a documentação do PostgreSQL sobre a criação de funções.
- Saiba mais sobre como se conectar a instâncias.