QueryProxy
Açık kaynakKendi sunucunuzdaAGPL-3.0

Üretim verisine erişim, üretim parolası dağıtmadan.

QueryProxy, ekibinizle veritabanlarınızın arasında durur. Geliştiriciler SQL gönderir, DBA’ler web’den ya da Slack’ten onaylar; sonuçlar sınırlanmış, maskelenmiş ve baştan sona denetlenmiş olarak döner.

$ docker run -p 7432:7432 queryproxy/queryproxy
Desteklenen veritabanlarıPostgreSQLMySQLMariaDBSQL ServerSQLite

QueryProxy nedir?

QueryProxy, açık kaynak ve kendi sunucunuzda çalışan bir veritabanı erişim denetimi ve sorgu onay portalıdır: mühendislik ekibinizle üretim veritabanlarınızın arasında durur, böylece geliştiriciler üretim parolalarını hiç ellerine almadan gerçek veriyle çalışabilir.

Parola paylaşmak ya da geçici tüneller açmak yerine her okuma ve her yazma tek bir yoldan ilerler: korumalı SQL düzenleyicide gönderilir, çalıştırılmadan önce parse edilir, bir DBA tarafından web kuyruğundan ya da Slack’ten onaylanır, ardından asenkron çalıştırılır; sonuçlar sınırlandırılmış, kurallarınıza göre maskelenmiş ve yalnızca eklenen bir denetim günlüğüne yazılmış olarak döner. Kendi sunucularınızda, AGPL-3.0 altında çalışır ve tek bir docker run ile başlar.

Tamamlanmış bir QueryProxy talebi: koruma tarafından eklenen LIMIT, talebi Slack’ten onaylayan DBA ve kişisel veri kolonları maskelenmiş sonuç tablosu.
Tamamlanmış bir QueryProxy talebi: koruma tarafından eklenen LIMIT, talebi Slack’ten onaylayan DBA ve kişisel veri kolonları maskelenmiş sonuç tablosu.

Nasıl çalışır

Adım adım SQL sorgu onay akışı

Her sorgu aynı güvenli yoldan geçer

Paylaşılan parolalar, geçici tüneller, "şunu benim için çalıştırır mısın?" mesajları yok — her okuma ve yazma için tek akış.

1

Gönder

Geliştiriciler, DBA’in kendilerine tanımladığı bağlantılar üzerinde korumalı bir editörde SQL yazar — kimlik bilgileri kasadan asla çıkmaz.

2

Denetle

AST denetleyicisi WHERE’siz UPDATE/DELETE’i reddeder, LIMIT ekler ve sınırlar, sunucu düzeyinde kod çalıştırma ya da dosya erişimi veren komutları doğrudan engeller.

3

Onayla

DBA’ler web kuyruğundan ya da doğrudan Slack / Teams’ten karar verir. Kendi sorgusunu onaylamak engellidir (admin geçersiz kılması işaretlenir); her karar denetim günlüğüne yazılır, sohbet geri çağrıları HMAC ile imzalanır.

4

Çalıştır

Kuyruk işçisi sonuçları satır satır akıtır, kurallarınızla eşleşen değerleri diske değmeden maskeler ve olan biten her şeyi denetim günlüğüne yazar.

QueryProxy onay kuyruğu: bekleyen talepler; her satırda talebi açan kişi, bağlantı, veritabanı motoru ve SQL ile onaylama ve reddetme işlemleri.
QueryProxy onay kuyruğu: bekleyen talepler; her satırda talebi açan kişi, bağlantı, veritabanı motoru ve SQL ile onaylama ve reddetme işlemleri.

Özellikler

Mühendislik ekipleri için veritabanı erişim denetimi

"Bunu çalıştırabilir miyim?" ile sonuç arasındaki her şey

Parse ederek uygulanan SQL korumaları

İfadeler desenle değil, gerçekten çözümlenerek denetlenir. WHERE’siz yıkıcı sorgular veritabanına asla ulaşmaz; başıboş SELECT’ler sabit bir üst sınırda kesilir.

Onaylar, ekibinizin yaşadığı yerde

Slack’te etkileşimli Approve / Reject düğmeleri; Teams’te talebe doğrudan bağlanan bir kart ve sohbetten karar veren akışlar için HMAC doğrulamalı bir action endpoint. Her geri çağrı HMAC-SHA256 ile doğrulanır ve yalnızca o talebe bağlı, tek kullanımlık bir token taşır — sahte ya da tekrarlanmış bir tıklama hiçbir şeyi değiştirmez.

Dinamik veri maskeleme

Kolon deseni ve içerik regex kuralları; e-postaları, kartları ve gizli değerleri sonuçlar yazılırken maskeler — kurallarınızla eşleşen değerler sonuç saklanmadan önce maskelenir; saklanan sonuç onları hiçbir zaman maskesiz içermez.

İzole takımlar ve roller

Takım başına DBA, Developer ve Auditor rolleri, bunların üstünde sistem genelinde bir Admin. Bağlantılar, talepler ve denetim izleri takım sınırını asla aşmaz; her bağlantıya erişim geliştirici bazında verilir.

Asenkron ve bellek dostu

Onaylanan sorgular istek döngüsünde değil, bir işçide çalışır. Cursor akışı sayesinde sonuç ister on satır olsun ister on bin, bellek kullanımı sabit kalır.

Yalnızca eklenen denetim günlüğü

Kim istedi, kim onayladı, ne çalıştı, ne kadar sürdü, neye dokundu. Uygulama kayıtları yalnızca ekler ve okur — ne düzenler ne siler; denetçiler filtreleyebilir, CSV olarak dışa aktarabilir.

QueryProxy Sorgu Stüdyosu: sözdizimi renklendirmeli SQL düzenleyicinin yanında bağlantı seçici ve geliştiricinin göndermeden önce gördüğü koruma geri bildirimi.
QueryProxy Sorgu Stüdyosu: sözdizimi renklendirmeli SQL düzenleyicinin yanında bağlantı seçici ve geliştiricinin göndermeden önce gördüğü koruma geri bildirimi.

Güvenlik

Üretim verisinin korunması, tasarım gereği

Güvenlik, bu ürünün var olma nedeni.

QueryProxy, kimsenin üretime kalıcı erişime ihtiyaç duymaması için var. Onu en az yetkili, salt okunur bir veritabanı kullanıcısıyla birlikte kullanın: SQL koruması derinlemesine savunmanın bir katmanıdır, veritabanı yetkilerinin yerini tutmaz.

Bir açık mı buldunuz?Güvenlik politikamıza.

AES-256 ile şifreli kimlik bilgileri

Sunucular, kullanıcı adları ve parolalar bekleme hâlinde şifrelidir — günlüklere veya hata mesajlarına asla düşmez.

İmzalı sohbet geri çağrıları

Her Slack ve Teams aksiyonunda HMAC-SHA256, ±5 dakikalık tekrar penceresi ve talep başına tek kullanımlık bir aksiyon token’ı. İmzalama secret’ını yalnızca sistem yöneticisi girebilir.

Kendine onay yok

Kimse kendi sorgusuna yeşil ışık yakamaz. Admin geçersiz kılmaları vardır — ve denetim günlüğünde işaretlenir.

İki adımlı doğrulama

Kurtarma kodlu, isteğe bağlı TOTP; rol bazında zorunlu kılabileceğiniz kurulum genelinde bir gereksinim.

Yazım anında maskeleme

Maskeleme sonuç akışının içinde çalışır — kurallarınızla eşleşen değerler sonuç deposuna hiçbir zaman maskesiz yazılmaz.

Yalnızca eklenen denetim izi

Uygulama denetim kayıtlarını ekler ve okur; güncelleme ve silme hata fırlatır. Bu, veritabanı tarafından değil uygulama katmanında sağlanır.

Her yerde hız sınırı

Giriş ve webhook uçları kısıtlanır; başarısız girişler otomatik olarak yavaşlatılır.

Hızlı başlangıç

QueryProxy’yi Docker ile iki dakikada kurun

Kahveniz soğumadan ayakta

Tek bir konteyner portalı, kuyruk işçisini ve zamanlayıcıyı başlatır. Varsayılan SQLite, sıfır harici servis — büyüdüğünüzde ortam değişkenleriyle MySQL/PostgreSQL ve Redis’e geçersiniz.

  • Redis yok, harici kuyruk yok — varsayılan olarak veritabanı tabanlı
  • Dokümanlar Slack ve Teams kurulumunu adım adım anlatır
  • İsteğe bağlı demo takım — her rolü iki ortam değişkeniyle deneyin
Dokümanları okuyun
terminal
$ docker run -d --name queryproxy \
    -p 7432:7432 -v queryproxy-data:/var/www/html/storage/app \
    -e [email protected] \
    -e QUERYPROXY_ADMIN_PASSWORD=... queryproxy/queryproxy
$ open http://localhost:7432
✓ portal · işçi · zamanlayıcı tek konteynerde çalışıyor

SSS

Sık sorulan sorular

QueryProxy nedir?
QueryProxy, açık kaynak ve kendi sunucunuzda çalışan bir veritabanı erişim denetimi ve sorgu onay portalıdır. Geliştiriciler korumalı bir düzenleyiciden SQL gönderir, bir DBA bunu web’den ya da Slack’ten onaylar veya reddeder; onaylanan sorgu asenkron çalışır ve sonuçlar sınırlandırılmış, maskelenmiş ve denetlenmiş olarak döner.
QueryProxy ücretsiz mi?
Evet. QueryProxy, AGPL-3.0 lisansıyla ücretsiz ve açık kaynaktır; ücretli sürümü ve kullanıcı başına fiyatlandırması yoktur. Kendi altyapınızda çalıştırdığınız için tek maliyet, üzerinde çalıştığı sunucudur.
Hangi veritabanlarını destekliyor?
PostgreSQL, MySQL, MariaDB, Microsoft SQL Server ve SQLite. SQL Server sürücüsü kodda vardır ama yayımlanan Docker imajı onsuz gelir; SQL Server için Microsoft’un ODBC sürücüsünü içeren özel bir imaj gerekir. Bağlantılar takım bazında bir DBA tarafından tanımlanır ve her geliştiriciye veritabanı sunucusunun tamamı yerine belirli bağlantılar için yetki verilir.
Geliştiriciler üretim parolalarını görüyor mu?
Hayır. Kimlik bilgileri uygulamada AES-256 ile şifreli saklanır; tarayıcıya gönderilmez, loglara yazılmaz ve hata mesajlarında görünmez. Geliştirici bağlantıyı adıyla seçer, sorguyu onun adına QueryProxy çalıştırır.
Bastion sunucudan veya VPN’den farkı ne?
Bastion sunucu veritabanına kimin ulaşacağını denetler; ulaşan kişinin ne çalıştırdığını göremez. QueryProxy ifadenin kendisini inceler — WHERE’siz UPDATE ve DELETE’i reddeder, kontrolsüz SELECT’leri sınırlar, sonuçtaki kişisel veriyi maskeler — ve her onayın kim tarafından verildiğini kaydeder. İkisi sorunun farklı yarılarını çözer ve çoğu zaman birlikte kullanılır.
Sorgular Slack veya Microsoft Teams üzerinden onaylanabilir mi?
Evet. Slack’te talep, Approve ve Reject düğmeleri olan etkileşimli bir kart olarak gelir. Teams’te kart, talebe giden bir bağlantı taşır ve kararlar HMAC doğrulamalı bir action endpoint üzerinden — tipik olarak bir Power Automate akışıyla — verilir. Her geri çağrı HMAC-SHA256 imzası, tekrar oynatma penceresi ve yalnızca o talebe bağlı tek kullanımlık bir token ile doğrulanır; dolayısıyla sahte ya da tekrarlanmış bir tıklama hiçbir şeyi değiştirmez. Sohbetten onaylamak, web kuyruğundan onaylamakla aynı anlama gelir.
Docker olmadan çalışır mı?
Evet. QueryProxy standart bir Laravel uygulamasıdır ve PHP 8.3 veya üzeri, Composer ve Node.js 20.19+ ya da 22.12+ bulunan her sunucuya elle kurulabilir. Tek bir docker run en hızlı yoldur — tek konteyner portalı, kuyruk işçisini ve zamanlayıcıyı başlatır.
Veriler saklanmadan önce mi maskeleniyor?
Evet. Maskeleme, satırlar yazılırken sonuç akışının içinde çalışır; kurallarınızla eşleşen bir değer sonuç deposuna hiçbir zaman maskesiz ulaşmaz. Kurallar *email* veya *card* gibi kolon desenleriyle ya da içerik regexleriyle eşleşir. Yeni takımlar varsayılan kurallarla başlar; mevcut takımlar kendi kurallarını ekler ve hiçbir kuralın kapsamadığı kolon olduğu gibi döner.

Her üretim sorgusunun önüne bir onay koyun.

Ücretsiz, açık kaynak, kendi sunucunuzda. Yıldızlayın, çatallayın, bu gece çalıştırın.

Gezinmek için ok tuşları, açmak için Enter.