Ligar o cliente do SQL Server através da imagem do Docker do proxy Auth do Cloud SQL

Esta página descreve como ligar um cliente sqlcmd à sua instância do Cloud SQL a partir de uma máquina cliente que execute o Linux ou uma instância do Linux do Compute Engine, através da imagem Docker do proxy Auth do Cloud SQL.

Antes de começar

Tem de ter:

Ligue um cliente sqlcmd através da imagem Docker do proxy Auth do Cloud SQL

Para estabelecer ligação através da imagem do Docker do proxy Auth do Cloud SQL:

  1. Enable the Cloud SQL Admin API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. Se estiver a usar uma instância do Compute Engine, prepare a instância:
    1. Apresente as propriedades da instância do Compute Engine:
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. Verifique os âmbitos ativados na instância.

      A autenticação através de âmbitos requer os seguintes âmbitos:

      • https://www.googleapis.com/auth/sqlservice.admin
      • https://www.googleapis.com/auth/devstorage.read_write

      Em alternativa, o âmbito https://www.googleapis.com/auth/cloud-platform ativa todas as APIs da Google Cloud Platform.

      Se a sua instância do Compute Engine não tiver os âmbitos adequados, pode atualizar a instância para os incluir. Para mais informações, consulte a documentação do Compute Engine.

    3. Abra uma ligação de terminal à instância através das instruções em Estabelecer ligação a instâncias do Linux.
  3. Instale o cliente sqlcmd na instância do Compute Engine ou na máquina cliente, se ainda não estiver instalado.
  4. Se necessário, instale o cliente Docker:
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER

    Se estiver a usar uma instância do Compute Engine otimizada para contentores, já tem o cliente Docker instalado.

  5. Instale a imagem do Docker do proxy Auth do Cloud SQL a partir do Google Container Registry.
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.18.2
  6. Se estiver a executar a imagem do Docker do Cloud SQL Auth Proxy numa máquina local (não numa instância do Compute Engine) ou a sua instância do Compute Engine não tiver os âmbitos adequados, crie uma conta de serviço da Google Cloud Platform.
    1. Na Google Cloud consola, aceda à página Contas de serviço.

      Aceda a Contas de serviço

    2. Selecione o projeto que contém a sua instância do Cloud SQL.
    3. Clique em Criar conta de serviço.
    4. No campo Nome da conta de serviço, introduza um nome descritivo para a conta de serviço.
    5. Altere o ID da conta de serviço para um valor único e reconhecível e, de seguida, clique em Criar e continuar.
    6. Clique no campo Selecionar uma função e selecione uma das seguintes funções:
      • Cloud SQL > Cliente do Cloud SQL
      • Cloud SQL > Editor do Cloud SQL
      • Cloud SQL > Administração do Cloud SQL
    7. Clique em Concluído para terminar de criar a conta de serviço.
    8. Clique no menu de ações da nova conta de serviço e, de seguida, selecione Gerir chaves.
    9. Clique no menu pendente Adicionar chave e, de seguida, em Criar nova chave.
    10. Confirme que o tipo de chave é JSON e, de seguida, clique em Criar.

      O ficheiro de chave privada é transferido para o seu computador. Pode movê-lo para outra localização. Mantenha o ficheiro de chave seguro.

    Indica o caminho para o ficheiro de chave como "PATH_TO_KEY_FILE" quando inicia o proxy Auth do Cloud SQL.

  7. Aceda à página Instâncias do Cloud SQL na Google Cloud consola.

    Aceda a Instâncias do Cloud SQL

  8. Selecione a instância para abrir a respetiva página Detalhes da instância e copie o Nome da associação da instância.

    Por exemplo: myproject:us-central1:myinstance.

  9. Inicie o proxy Auth do Cloud SQL.

    Consoante o seu idioma e ambiente, pode iniciar o proxy Auth do Cloud SQL através de sockets TCP ou sockets Unix. Os sockets Unix não são suportados para aplicações escritas na linguagem de programação Java nem para o ambiente Windows.

    Entradas TCP

    docker run -d \
      -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \
      -p 127.0.0.1:1433:1433 \
      gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.18.2 \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>

    Se estiver a usar as credenciais fornecidas pela sua instância do Compute Engine, não inclua o parâmetro --credentials-file e a linha -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json.

    Especifique sempre o prefixo 127.0.0.1 em -p para que o proxy Auth do Cloud SQL não seja exposto fora do anfitrião local. O "0.0.0.0" no parâmetro instances é necessário para tornar a porta acessível a partir do exterior do contentor do Docker.

    Sockets Unix

    docker run -d -v /cloudsql:/cloudsql \
      -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \
      gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.18.2 //
      --unix-socket=/cloudsql \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME> 

    Se estiver a usar as credenciais fornecidas pela sua instância do Compute Engine, não inclua o parâmetro --credentials-file e a linha -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json.

    Se estiver a usar uma imagem otimizada para contentores, use um diretório gravável em vez de /cloudsql, por exemplo:

    -v /mnt/stateful_partition/cloudsql:/cloudsql

    Pode especificar mais do que uma instância, separadas por vírgulas. Também pode usar os metadados do Compute Engine para determinar dinamicamente as instâncias às quais estabelecer ligação. Saiba mais acerca dos parâmetros de proxy.

  10. Inicie o cliente:

    A string de ligação que usa depende de ter iniciado o proxy Auth do Cloud SQL com um socket TCP ou o Docker.

    Entradas TCP

    1. Inicie o cliente sqlcmd:
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD

      Quando se liga através de sockets TCP, acede-se ao proxy Auth do Cloud SQL através de 127.0.0.1.

    2. Se lhe for pedido, introduza a palavra-passe.
    3. É apresentada a linha de comandos sqlcmd.
Precisa de ajuda? Para obter ajuda na resolução de problemas do proxy, consulte o artigo Resolução de problemas de ligações do proxy Auth do Cloud SQL ou consulte a nossa página de apoio técnico do Cloud SQL.

Mantenha a imagem do Docker do proxy Auth do Cloud SQL atualizada

A imagem Docker do proxy Auth do Cloud SQL baseia-se numa versão específica do proxy Auth do Cloud SQL. Quando estiver disponível uma nova versão do proxy Auth do Cloud SQL, transfira a nova versão da imagem do Docker do proxy Auth do Cloud SQL para manter o seu ambiente atualizado. Pode ver a versão atual do proxy Auth do Cloud SQL consultando a página de lançamentos do proxy Auth do Cloud SQL no GitHub. Os lançamentos futuros de proxies também vão ser indicados no fórum de anúncios do Google Groups Cloud SQL.

O que se segue?