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:
- Instalou a CLI gcloud. Saiba mais.
- Autorizou a CLI gcloud. Saiba mais.
- Defina o projeto predefinido para a CLI gcloud. Saiba mais.
- Configurou um utilizador da base de dados na sua instância do Cloud SQL. Saiba mais.
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:
-
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.enable
permission. Learn how to grant roles. - Se estiver a usar uma instância do Compute Engine, prepare a instância:
-
Apresente as propriedades da instância do Compute Engine:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- 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.
- Abra uma ligação de terminal à instância através das instruções em Estabelecer ligação a instâncias do Linux.
-
Apresente as propriedades da instância do Compute Engine:
-
Instale o cliente sqlcmd na instância do Compute Engine ou na máquina cliente, se ainda não estiver instalado.
Debian/Ubuntu
Para Debian/Ubuntu, instale as ferramentas de linha de comandos do SQL Server aplicáveis.
CentOS/RHEL
Para o CentOS/RHEL, instale as ferramentas de linha de comandos do SQL Server aplicáveis.
openSUSE
Para o openSUSE, instale as ferramentas de linha de comandos do SQL Server aplicáveis.
Outras plataformas
Consulte a página de destino para instalar o SQL Server, bem como a página de transferências do SQL Server.
-
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.
-
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
- 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.
- Na Google Cloud consola, aceda à página Contas de serviço.
- Selecione o projeto que contém a sua instância do Cloud SQL.
- Clique em Criar conta de serviço.
- No campo Nome da conta de serviço, introduza um nome descritivo para a conta de serviço.
- Altere o ID da conta de serviço para um valor único e reconhecível e, de seguida, clique em Criar e continuar.
-
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
- Clique em Concluído para terminar de criar a conta de serviço.
- Clique no menu de ações da nova conta de serviço e, de seguida, selecione Gerir chaves.
- Clique no menu pendente Adicionar chave e, de seguida, em Criar nova chave.
-
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.
- Aceda à página Instâncias do Cloud SQL na Google Cloud consola.
-
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
. -
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.
- 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
- 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
. - Se lhe for pedido, introduza a palavra-passe.
- É apresentada a linha de comandos sqlcmd.
- Inicie o cliente sqlcmd:
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?
- Saiba mais sobre o proxy Auth do Cloud SQL.
- Obtenha ajuda para resolver problemas de ligação do proxy Auth do Cloud SQL.
- Criar utilizadores e bases de dados.
- Saiba mais sobre as opções de ligação à sua instância a partir da sua aplicação.
- Saiba mais sobre o Docker.
- Saiba mais sobre o Google Container Registry.
- Saiba mais acerca das opções de apoio técnico.