Como criar e gerenciar usuários do SQL Server

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 informações sobre como os usuários trabalham com o Cloud SQL, consulte Usuários do SQL Server.

Antes de começar

Antes de concluir as tarefas abaixo, crie uma instância do Cloud SQL. Para mais informações, consulte Como 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.

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

Para o Cloud SQL para SQL Server, o usuário padrão é sqlserver.

Para configurar o usuário padrão:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique na instância para abrir a respectiva página "Visão geral".
  3. Selecione Usuários no menu de navegação.
  4. Encontre o usuário sqlserver e selecione Alterar senha no menu "Mais ações" Ícone mais ações..
  5. 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 sqlserver \
    --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

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

Como criar um usuário

Para criar um usuário:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a página "Visão geral" correspondente.
  3. Selecione Usuários no menu de navegação.
  4. Clique em ADICIONAR USUÁRIO.
  5. 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.

  6. Clique em Criar.

gcloud

Crie o usuário:

gcloud sql users create [USER_NAME] \
   --instance=[INSTANCE_NAME] --password=[PASSWORD]

Os limites de tamanho de nome de usuário são os mesmos no Cloud SQL e no SQL Server local.

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 limites de tamanho de nome de usuário são os mesmos no Cloud SQL e no SQL Server local.

Alterar uma senha de usuário

Para alterar uma senha de usuário:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a página "Visão geral" correspondente.
  3. Selecione Usuários no menu de navegação.
  4. Selecione o usuário a ser atualizado e clique em "Mais ações" Ícone mais ações..
  5. Selecione Alterar senha, especifique uma nova senha e clique em OK.

gcloud

Atualize a senha:

gcloud sql users set-password [USER_NAME] \
   --instance=[INSTANCE_NAME] --prompt-for-password

REST v1beta4

A seguinte solicitação usa o método users:update para atualizar 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 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"
}

Como atualizar usuários

Para informações relacionadas a papéis no nível do banco de dados no SQL Server, consulte Como trabalhar com papéis no nível do banco de dados na documentação do SQL Server.

Como listar usuários

Para listar usuários:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a página "Visão geral" correspondente.
  3. 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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Excluir usuários

Para excluir um usuário, siga estas instruções:

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

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a página "Visão geral" correspondente.
  3. Selecione Usuários no menu de navegação.
  4. Selecione o usuário a ser excluído e clique em "Mais ações" Ícone mais ações..
  5. 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"
}

A seguir