Nesta página, descrevemos como usar a imagem do Docker do proxy do Cloud SQL Auth para conectar um cliente sqlcmd à instância do Cloud SQL a partir de uma máquina cliente que executa a instância do Linux ou do Compute Engine Linux.
Antes de começar
Você precisa:
- instalou a CLI gcloud. Saiba mais.
- Autorizou a CLI gcloud. Saiba mais.
- Definir o projeto padrão para a CLI gcloud. Saiba mais.
- configurar um usuário de banco de dados na instância do Cloud SQL. Saiba mais
Conectar um cliente sqlcmd usando a imagem do Docker do proxy do Cloud SQL Auth
Para se conectar usando a imagem do Docker do proxy do Cloud SQL Auth:
-
Enable the Cloud SQL Admin API.
- Se você usa uma instância do Compute Engine, é necessário prepará-la:
-
Exiba as propriedades dessa instância:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- Verifique os escopos ativados nela.
A autenticação com escopos requer os seguintes escopos:
https://www.googleapis.com/auth/sqlservice.admin
https://www.googleapis.com/auth/devstorage.read_write
Como alternativa, o escopo
https://www.googleapis.com/auth/cloud-platform
ativa todas as APIs do Google Cloud Platform.Se sua instância do Compute Engine não tiver os escopos adequados, você pode atualizar a instância para incluí-los. Para mais informações, consulte a documentação do Compute Engine.
- Abra uma conexão de terminal com a instância, seguindo as instruções em Como conectar-se a instâncias do Linux.
-
Exiba as propriedades dessa instância:
-
Instale o cliente sqlcmd na instância do Compute Engine ou na máquina
cliente, se isso ainda não foi feito.
Debian/Ubuntu
Para Debian/Ubuntu, instale as ferramentas de linha de comando aplicáveis do SQL Server.
CentOS/RHEL
Para o CentOS/RHEL, instale as ferramentas de linha de comando aplicáveis do SQL Server.
openSUSE
Para o openSUSE, instale as ferramentas de linha de comando aplicáveis do SQL Server.
Outras plataformas
Consulte a página de destino e a página de downloads do SQL Server para instalar o SQL Server.
-
Se necessário, instale o cliente Docker:
curl https://get.docker.com | sh sudo usermod -aG docker $USER
Se você usa uma instância do Compute Engine otimizada para contêineres, ela já tem o cliente Docker instalado.
-
Instale a imagem do Docker do proxy Cloud SQL Auth pelo
Google Container Registry.
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.13.0
- Se você estiver executando a imagem do Docker do proxy do Cloud SQL Auth em uma máquina local (e não em uma
instância do Compute Engine) ou se a instância do Compute Engine não tiver os
escopos apropriados, crie uma conta de serviço do Google Cloud Platform.
- No Console do Google Cloud, acesse a página Contas de serviço.
- Selecione o projeto que contém a instância do Cloud SQL.
- Clique em Criar conta de serviço.
- Preencha o campo Nome da conta de serviço.
- Altere o ID da conta de serviço para um valor exclusivo e facilmente reconhecível, depois clique em Criar e continuar.
-
Clique no campo Selecionar papel e escolha um dos seguintes papéis:
- Cloud SQL > Cliente do Cloud SQL
- Cloud SQL > Editor do Cloud SQL
- Cloud SQL > Administrador do Cloud SQL
- Clique em Concluído para terminar a criação da conta de serviço.
- Clique no menu de ações da sua nova conta de serviço e selecione Gerenciar chaves.
- Clique no menu suspenso Adicionar chave e clique em Criar nova chave.
-
Confirme se o tipo de chave é JSON e clique em Criar.
O arquivo da chave privada é transferido para sua máquina. Você pode movê-lo para outro local. Mantenha-o seguro.
Forneça o caminho para o arquivo de chave como "PATH_TO_KEY_FILE" quando iniciar o proxy do Cloud SQL Auth.
- Acesse a página Instâncias do Cloud SQL, no console do Google Cloud.
-
Selecione a instância para abrir a respectiva página Detalhes da instância e copie o Nome da conexão da instância.
Por exemplo,
myproject:us-central1:myinstance
. -
Inicie o proxy de autenticação do Cloud SQL.
Dependendo da linguagem e do ambiente, inicie o proxy de autenticação do Cloud SQL usando os soquetes TCP ou Unix. Os soquetes Unix não são compatíveis com aplicativos desenvolvidos na linguagem de programação Java ou com o ambiente Windows.
Soquetes 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.13.0 \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Se você usa as credenciais fornecidas pela 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
.Sempre especifique o prefixo
127.0.0.1
em -p para que o proxy de autenticação do Cloud SQL não seja exposto fora do host local. O "0.0.0.0" no parâmetro das instâncias é necessário para tornar a porta acessível de fora do contêiner do Docker.Soquetes 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.13.0 // --unix-socket=/cloudsql \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Se você usa as credenciais fornecidas pela 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 você usa uma imagem otimizada para contêiner, utilize um diretório gravável em vez de
/cloudsql
. Por exemplo:-v /mnt/stateful_partition/cloudsql:/cloudsql
É possível especificar mais de uma instância, separadas por vírgulas. Também é possível usar metadados do Compute Engine para determinar dinamicamente a quais instâncias se conectar. Saiba mais sobre os parâmetros de proxy.
- Inicie o cliente:
A string de conexão que você usa depende de como a inicialização do proxy de autenticação do Cloud SQL foi feita, ou seja, usando um soquete TCP ou o Docker.
Soquetes TCP
- Inicie o cliente sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
Quando você se conecta usando soquetes TCP, o proxy de autenticação do Cloud SQL é acessado por meio de
127.0.0.1
. - Se solicitado, digite a senha.
- Será exibido o prompt sqlcmd.
- Inicie o cliente sqlcmd:
Manter a imagem do Docker do proxy do Cloud SQL Auth atualizada
A imagem Docker do proxy de autenticação do Cloud SQL é baseada em uma versão específica do proxy. Quando uma nova versão do proxy de autenticação do Cloud SQL estiver disponível, extraia a nova versão da imagem Docker do proxy de autenticação do Cloud SQL para manter o ambiente atualizado. Você pode ver qual é a versão atual na página de versões do proxy do Cloud SQL Auth no GitHub. As futuras versões de proxy também serão divulgadas no fórum de anúncios do Cloud SQL nos Grupos dos Google (em inglês).
A seguir
- Saiba mais sobre o proxy de autenticação do Cloud SQL.
- Receba ajuda para solucionar problemas de conexão do proxy de autenticação do Cloud SQL.
- Crie usuários e bancos de dados.
- Saiba mais sobre as opções de conexão à instância do aplicativo.
- Saiba sobre o Docker (em inglês).
- Saiba sobre o Google Container Registry.
- Conheça as opções de suporte.