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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - 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.adminhttps://www.googleapis.com/auth/devstorage.read_write
Como alternativa, o escopo
https://www.googleapis.com/auth/cloud-platformativa 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.21.1
- 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 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 Google Cloud console.
-
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.21.1 \ --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-filee a linha-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json.Sempre especifique o prefixo
127.0.0.1em -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.21.1 // --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-filee 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.
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.