Crie e faça a gestão de utilizadores

Esta página descreve como ativar e usar a autenticação integrada do Cloud SQL.

Para ver informações adicionais acerca dos utilizadores que cria através do Cloud SQL, consulte a secção Outros utilizadores do SQL Server.

Antes de criar utilizadores

  1. Crie uma instância do Cloud SQL. Para mais informações, consulte o artigo Crie instâncias.
  2. Se planeia usar o cliente administrativo da sua base de dados para gerir utilizadores, 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 SQL Server, o utilizador predefinido é sqlserver.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Selecione Utilizadores no menu de navegação do SQL.
  4. Encontre o utilizador sqlserver e selecione Alterar palavra-passe no menu de mais ações Ícone Mais ações..
  5. 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 sqlserver \
--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
  • user-id: O ID do utilizador
  • 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=user-id

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: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
  • 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"
}

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

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Selecione Utilizadores no menu de navegação do SQL.
  4. Clique em Adicionar conta de utilizador.
  5. Na página Adicione uma conta de utilizador à instância instance_name, adicione as seguintes informações:
    • Um nome de utilizador.
    • Uma palavra-passe (opcional).
  6. Clique em Adicionar.

gcloud

Para criar um utilizador, use o comando gcloud sql users create.

Substitua o seguinte:

  • USER_NAME: o nome de utilizador.
  • INSTANCE_NAME: o nome da instância.
  • PASSWORD: a palavra-passe do utilizador.
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD

Os limites de comprimento dos nomes de utilizador são os mesmos para o Cloud SQL e para o SQL Server no local.

Terraform

Para criar um utilizador, use um recurso do Terraform.

resource "random_password" "pwd" {
  length  = 16
  special = false
}

resource "google_sql_user" "user" {
  name     = "user"
  instance = google_sql_database_instance.instance.name
  password = random_password.pwd.result
}

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

  1. Inicie o Cloud Shell.
  2. 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).

  1. 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 é denominado main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
  4. Guarde as alterações.
  5. 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

  1. 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.

  2. 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!).

  3. 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:

  1. Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Aplique a configuração do Terraform atualizada executando o seguinte comando e introduzindo yes no comando:
    terraform apply
  1. 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 limites de comprimento dos nomes de utilizador são os mesmos para o Cloud SQL e para o SQL Server no local.

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 limites de comprimento dos nomes de utilizador são os mesmos para o Cloud SQL e para o SQL Server no local.

Listar utilizadores

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Selecione Utilizadores no menu de navegação do SQL.

gcloud

Use o comando gcloud sql users list para listar os utilizadores desta instância:

gcloud sql users list \
--instance=INSTANCE_NAME

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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Altere a palavra-passe de um utilizador

As palavras-passe dos utilizadores podem ser alteradas de uma das seguintes formas.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Selecione Utilizadores no menu de navegação do SQL.
  4. Clique em mais ações Ícone Mais ações. para o utilizador que quer atualizar.
  5. Selecione Alterar palavra-passe.
  6. Especifique uma nova palavra-passe.
  7. 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.
  • INSTANCE_NAME: o nome da instância.
gcloud sql users set-password USER_NAME \
--instance=INSTANCE_NAME \
--prompt-for-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.

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

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"
}

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.

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

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"
}

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"
}

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

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Selecione Utilizadores no menu de navegação do SQL.
  4. Clique em mais ações Ícone Mais ações. junto ao utilizador que quer remover.
  5. 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.
  • INSTANCE_NAME: o nome da instância.
gcloud sql users delete USER_NAME \
--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"
}

Atualize propriedades do utilizador

Para obter informações relacionadas com funções ao nível da base de dados no SQL Server, consulte o artigo Trabalhar com funções ao nível da base de dados na documentação do SQL Server.

O que se segue?