Estabeleça ligação através de um cliente psql

Pode usar o cliente de linha de comandos do PostgreSQL para estabelecer ligação ao Cloud SQL. Esta página descreve como ligar um cliente psql à sua instância do Cloud SQL, quer esteja a ser executado localmente na sua máquina cliente, numa VM do Compute Engine ou no Cloud Shell.

Antes de começar

Antes de poder usar um cliente psql para estabelecer ligação à sua instância do Cloud SQL, faça o seguinte:

Use um cliente PostgreSQL numa máquina local ou numa VM do Compute Engine

A utilização de um cliente psql para estabelecer ligação à sua instância do Cloud SQL envolve três tarefas de alto nível:

  1. Instale o cliente.
  2. Configure o acesso à sua instância do Cloud SQL.
  3. Estabeleça ligação à sua instância do Cloud SQL.

Instale o cliente

Para instalar o cliente psql, faça o seguinte:

Debian/Ubuntu

Instale o cliente psql a partir do gestor de pacotes:

sudo apt-get update
sudo apt-get install postgresql-client

CentOS/RHEL

Instale o cliente psql a partir do gestor de pacotes:

sudo yum install postgresql

openSUSE

Instale o cliente psql a partir do gestor de pacotes:

sudo zypper install postgresql

Outras plataformas

  1. Transfira a distribuição principal do PostgreSQL para a sua plataforma na página de transferências do PostgreSQL.
    A distribuição principal inclui o cliente psql.
  2. Instale a base de dados PostgreSQL seguindo as instruções na página de transferência.

Configure o acesso à sua instância do Cloud SQL

Para configurar o acesso à sua instância, faça o seguinte:

  1. Na máquina cliente ou na instância de VM do Compute Engine, use o site Qual é o meu IP para ver o endereço IP da máquina cliente.
  2. Copie esse endereço IP.
  3. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  4. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  5. Selecione Associações no menu de navegação do SQL.
  6. Selecione o separador Redes.
  7. Na secção Redes autorizadas, clique em Adicionar rede e introduza o endereço IP do computador onde o cliente está instalado. psql
  8. Clique em Concluído. Em seguida, clique em Guardar na parte inferior da página para guardar as alterações.
  9. Estabeleça ligação à sua instância através de SSL/TLS ou sem encriptação (sem usar SSL/TLS).

Estabeleça ligação à sua instância do Cloud SQL sem encriptação

Para permitir a ligação sem encriptação, a instância tem de ter o modo SSL definido como ALLOW_UNENCRYPTED_AND_ENCRYPTED. Na Google Cloud consola, a configuração equivalente é Permitir tráfego de rede não encriptado.

Para mais informações acerca da configuração SSL/TLS da sua instância, consulte o artigo Configurar certificados SSL/TLS.

Para estabelecer ligação à sua instância, faça o seguinte:

  1. Confirme que instalou o cliente e configurou o acesso à sua instância.
  2. Inicie o cliente psql:
    psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP_ADDRESS"
  3. Introduza a palavra-passe.
  4. É apresentada a linha de comandos psql.

Ligue-se à sua instância do Cloud SQL através de SSL/TLS

Para estabelecer ligação à sua instância através de SSL/TLS e autenticação integrada:

  1. Inicie o cliente psql:
    psql "sslmode=require \
          hostaddr=INSTANCE_IP_ADDRESS \
          user=postgres dbname=DB_NAME"
       

    Por exemplo:

    psql "sslmode=require \
          hostaddr=203.12.34.56 \
          user=postgres dbname=postgres"
       

    Também pode criar um ficheiro de serviço de ligação para gerir os parâmetros de ligação, especialmente se estiver a estabelecer ligação a mais do que uma instância. Para mais informações, consulte a documentação do PostgreSQL.

  2. Introduza a palavra-passe. A palavra-passe é obrigatória para o Cloud SQL, mesmo que o PostgreSQL suporte a conetividade sem palavra-passe ao usar SSL/TLS.
  3. Pode confirmar que a ligação está encriptada procurando a cifra nas informações de ligação:
    SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
    

Estabeleça ligação à sua instância do Cloud SQL através de SSL/TLS e validação de certificados de cliente

Se ssl_mode na sua instância do Cloud SQL estiver configurado para TRUSTED_CLIENT_CERTIFICATE_REQUIRED, também tem de fornecer uma identidade de cliente validada quando iniciar sessão.

Para estabelecer ligação através de certificados SSL/TLS com validação de cliente, precisa do seguinte:

  • Um certificado de chave pública do cliente num ficheiro client-cert.pem.
  • Uma chave privada do cliente num ficheiro client-key.pem.

Além disso, para permitir que o cliente valide a identidade do servidor para autenticação mútua, especifique o certificado do servidor server-ca.pem.

Por exemplo, para iniciar o cliente psql:
   psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=INSTANCE_IP_ADDRESS \
      user=postgres dbname=DB_NAME"
   

Se não tiver um certificado de cliente e uma chave privada correspondente, crie um novo certificado de cliente.

Usar o cliente no Cloud Shell

Para ligar a uma instância do Cloud SQL (apenas IP público):

  1. Aceda à Google Cloud consola.

    Aceda à Google Cloud consola

  2. Clique no ícone do Cloud Shell na parte direita da barra de ferramentas.

    O Cloud Shell demora alguns momentos a inicializar.

  3. Na linha de comandos do Cloud Shell, use o cliente incorporado para se ligar à sua instância do Cloud SQL:
    gcloud sql connect INSTANCE_ID \
    --user=postgres
  4. Introduza a palavra-passe.

O comando gcloud sql connect não suporta a ligação a uma instância do Cloud SQL através de um IP privado ou através de SSL/TLS. Para estabelecer ligação com encriptação, instale e use o proxy no Cloud Shell:

  1. Instale o proxy (Linux de 64 bits) no diretório /home/USER.
  2. Inicie o proxy através da autenticação da CLI gcloud:

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME &

  3. Faça a ligação à base de dados através da ligação TCP:

    psql -U USERNAME --host=127.0.0.1

O que se segue?

Experimente

Se está a usar o Google Cloud pela primeira vez, crie uma conta para avaliar o desempenho do Cloud SQL em cenários reais. Os novos clientes também recebem 300 USD em créditos gratuitos para executar, testar e implementar cargas de trabalho.

Experimente o Cloud SQL gratuitamente