Pular para o conteúdo
Skillpedia
Bancos de dados48 mil · #4677

postgres-readonly-queries

Permite que seu agente leia dados de bancos de dados PostgreSQL com segurança. Ele garante que os dados não sejam alterados acidentalmente.

O que ela faz

Este agente permite que você faça perguntas a bancos de dados PostgreSQL de forma segura, apenas para leitura. Ele se conecta a diferentes bancos de dados que você configurar e garante que você não altere nada acidentalmente.

Quando usar

  • ✓Quando você precisa ver dados em um banco de dados PostgreSQL sem risco de alterá-los.
  • ✓Ao explorar as tabelas e colunas de um banco de dados.
  • ✓Para verificar informações específicas em um banco de dados, como uma lista de clientes ou pedidos.

Exemplo do que pedir para a IA

“Liste os 10 primeiros usuários do banco de dados de produção.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/skills/postgres-readonly-queries/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/skills/postgres-readonly-queries/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você configura as informações de conexão para seus bancos de dados PostgreSQL em um arquivo. Depois, pode pedir ao agente para executar consultas SQL (comandos para buscar dados) que são sempre apenas para leitura, garantindo a segurança.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill postgres-readonly-queries

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/skills/postgres-readonly-queries/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Habilidade de Consulta Somente Leitura do PostgreSQL

Quando Usar

  • Use ao consultar bancos de dados PostgreSQL e o acesso deve permanecer estritamente somente leitura
  • Use ao explorar esquemas, tabelas e dados em várias conexões configuradas
  • Use quando quiser proteção em profundidade contra INSERT/UPDATE/DELETE acidentais ou DDL

Execute consultas seguras e somente leitura em bancos de dados PostgreSQL configurados.

Requisitos

  • Python 3.8+
  • psycopg2-binary: pip install -r requirements.txt

Configuração

Crie connections.json no diretório da habilidade ou ~/.config/claude/postgres-connections.json.

Segurança: Defina as permissões do arquivo para 600, pois ele contém credenciais:

chmod 600 connections.json
{
  "databases": [
    {
      "name": "production",
      "description": "Main app database - users, orders, transactions",
      "host": "db.example.com",
      "port": 5432,
      "database": "app_prod",
      "user": "readonly_user",
      "password": "your-password",
      "sslmode": "require"
    }
  ]
}

Campos de Configuração

Campo Obrigatório Descrição
name Sim Identificador para o banco de dados (não diferencia maiúsculas de minúsculas)
description Sim Quais dados este banco de dados contém (usado para seleção automática)
host Sim Nome do host do banco de dados
port Não Número da porta (padrão: 5432)
database Sim Nome do banco de dados
user Sim Nome de usuário
password Sim Senha
sslmode Não Modo SSL: disable, allow, prefer (padrão), require, verify-ca, verify-full

Uso

Listar bancos de dados configurados

python3 scripts/query.py --list

Consultar um banco de dados

python3 scripts/query.py --db production --query "SELECT * FROM users LIMIT 10"

Listar tabelas

python3 scripts/query.py --db production --tables

Mostrar esquema

python3 scripts/query.py --db production --schema

Limitar resultados

python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100

Seleção de Banco de Dados

Combine a intenção do usuário com a descrição do banco de dados description:

Usuário pergunta sobre Procure descrição contendo
usuários, contas usuários, contas, clientes
pedidos, vendas pedidos, transações, vendas
analytics, métricas analytics, métricas, relatórios
logs, eventos logs, eventos, auditoria

Se não estiver claro, execute --list e pergunte ao usuário qual banco de dados.

Recursos de Segurança

  • Sessão somente leitura: A conexão usa o modo readonly=True do PostgreSQL (proteção primária)
  • Validação de consulta: Apenas consultas SELECT, SHOW, EXPLAIN, WITH são permitidas
  • Instrução única: Múltiplas instruções por consulta são rejeitadas
  • Suporte SSL: Modo SSL configurável para conexões criptografadas
  • Tempo limite de consulta: Tempo limite de instrução de 30 segundos aplicado
  • Proteção de memória: Máximo de 10.000 linhas por consulta para evitar OOM
  • Limite de largura de coluna: Máximo de 100 caracteres por coluna para saída legível
  • Sanitização de credenciais: Mensagens de erro não vazam senhas

Solução de Problemas

Erro Solução
Configuração não encontrada Crie connections.json no diretório da habilidade
Falha na autenticação Verifique o nome de usuário/senha na configuração
Tempo limite de conexão Verifique host/porta, verifique firewall/VPN
Erro SSL Tente "sslmode": "disable" para bancos de dados locais
Aviso de permissão Execute chmod 600 connections.json

Códigos de Saída

  • 0: Sucesso
  • 1: Erro (configuração ausente, falha na autenticação, consulta inválida, erro no banco de dados)

Fluxo de Trabalho

  1. Execute --list para mostrar os bancos de dados disponíveis
  2. Combine a intenção do usuário com a descrição do banco de dados
  3. Execute --tables ou --schema para explorar a estrutura
  4. Execute a consulta com o LIMIT apropriado

Limitações

  • As proteções somente leitura reduzem escritas acidentais, mas não podem substituir a política do servidor de banco de dados, gatilhos, extensões ou uma conta com privilégios excessivos. Use uma função de banco de dados com permissões somente leitura como controle primário.
  • Os resultados das consultas podem conter dados pessoais, confidenciais ou regulamentados. Confirme o banco de dados pretendido e evite exportar ou compartilhar resultados sem autorização explícita.
  • O script não substitui backups, auditorias, revisões de acesso ou controles de produção.
Perguntas frequentes

O que acontece se eu tentar alterar dados?

O agente foi projetado para impedir alterações. Ele só permite comandos de leitura (como SELECT) e tem proteções extras para evitar que você modifique ou apague dados por engano.

Como o agente sabe a qual banco de dados me conectar?

Você pode listar os bancos de dados configurados e escolher um pelo nome ou descrição. O agente também tenta adivinhar qual banco de dados você quer com base no que você pergunta.

É seguro colocar minhas senhas?

Sim, desde que você siga as instruções de segurança. As senhas ficam em um arquivo de configuração especial que deve ter permissões restritas (apenas você pode ler/escrever), e o agente não mostra senhas em mensagens de erro.

Detalhes

Descrição original do autor

Execute safe read-only SQL queries against PostgreSQL databases with multi-connection support and defense-in-depth write protection.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4677
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas