1. O Que E uma Connection String
Uma connection string e uma string formatada que contem todos os parametros necessarios para estabelecer uma conexao com um banco de dados: host, porta, nome do banco, credenciais e opcoes de SSL. O formato varia conforme o banco e a biblioteca/driver utilizada.
2. Formatos por Linguagem
Cada ecossistema usa um formato diferente de connection string:
- Python (SQLAlchemy):
postgresql+psycopg2://user:pass@host:port/db - Java (JDBC):
jdbc:postgresql://host:port/db?user=u&password=p - C# (ADO.NET):
Host=host;Port=5432;Database=db;Username=u;Password=p - Node.js (pg):
postgresql://user:pass@host:port/db
3. SSL e Seguranca
Em producao, sempre habilite SSL na connection string para criptografar o trafego entre a aplicacao e o banco. O modo require exige SSL sem verificar o certificado (util em desenvolvimento). O modo verify-full verifica o certificado e o hostname, sendo o mais seguro para producao.
"Nunca use connection strings com credenciais hardcoded em codigo-fonte. Sempre use variaveis de ambiente ou secret managers."
4. Variaveis de Ambiente
A pratica recomendada e armazenar connection strings em variaveis de ambiente como DATABASE_URL, MONGODB_URI ou REDIS_URL. Isso evita expor credenciais em repositorios e facilita a troca entre ambientes (dev, staging, prod) sem alterar codigo.
5. Connection Pooling
Para aplicacoes com alto volume de requisicoes, configure um pool de conexoes em vez de criar uma nova conexao a cada request. Parametros como pool_size, max_overflow e pool_timeout podem ser adicionados nos parametros extras da connection string ou configurados diretamente no ORM/driver.
6. Perguntas Frequentes
Como escapar caracteres especiais na senha?
Caracteres especiais na senha (como @, /, ?, #) devem ser percent-encoded na URI. Por exemplo, @ vira %40. O gerador da Chipak faz isso automaticamente usando encodeURIComponent().
As credenciais ficam armazenadas?
Nao. Todo o processamento e feito localmente no navegador. Nenhuma credencial e enviada a servidores externos. Ainda assim, evite usar connection strings de producao em ferramentas publicas.