Giriş
QueryProxy nedir, hangi sorunu çözer ve bir sorgu geliştiricinin editöründen maskelenmiş, denetlenmiş sonuca nasıl ulaşır.
Güncelleme:
QueryProxy, kendi sunucunuzda çalışan bir veritabanı erişim denetimi ve sorgu onay portalıdır. Ekibinizle veritabanlarınızın arasında durur; geliştiriciler üretim parolalarını hiç ellerine almadan üretim verisiyle çalışabilir.
Parola paylaşmak ya da geçici tüneller açmak yerine ekibiniz tek bir akışı izler:
- Gönder — geliştirici, DBA’in kendisine tanımladığı bir bağlantı üzerinde, korumalı editörde SQL yazar. Kimlik bilgileri şifreli kasadan çıkmaz.
- Denetle — SQL çalışmadan önce parse edilip incelenir:
WHERE’sizUPDATE/DELETEreddedilir,LIMIT’sizSELECT’e limit eklenir, sunucuda kod çalıştırmaya ya da dosyalara uzanan komutlar engellenir. - Onayla — bir DBA, talebi web kuyruğundan ya da doğrudan Slack / Teams’ten onaylar veya reddeder. Kimse kendi talebini onaylayamaz.
- Çalıştır — kuyruk işçisi sorguyu asenkron çalıştırır, sonucu satır satır akıtır, kişisel verileri diske değmeden maskeler ve her adımı kurcalandığında fark edilen bir denetim günlüğüne yazar.
Nasıl çalışır
Aynı akış bir şema olarak. Her ok denetim günlüğüne yazılan bir adımdır; onaylı sorguları kuyruk ve işçi çalıştırır, bu yüzden işçi isteğe bağlı değildir.
Developer ──▶ Query Studio ──▶ SQL guards (AST) ──▶ pending request
│
Slack / Teams ◀── notification ──┤
│ │
▼ ▼
Approve / Reject ──────▶ queue ──▶ worker
(HMAC-verified) │ cursor streaming
▼
masked NDJSON result on storage disk
│
viewer / CSV download ◀───┘ (all steps audited)
Neler sunar
- Takımlar ve roller — Admin, DBA, Developer ve Auditor rolleri; bağlantılar, talepler ve denetim izleri takım bazında izoledir.
- Bağlantı kasası — AES-256 ile şifreli kimlik bilgileriyle PostgreSQL, MySQL ile MariaDB, SQL Server ve SQLite hedefleri.
- SQL korumaları — desen eşleme değil, gerçek parse ile uygulanır. Arkasındaki fikir veritabanı erişim denetimi yazısında anlatılır; diğer araçlarla karşılaştırması ayrıca ele alınır.
- ChatOps onayları — etkileşimli Slack düğmeleri ve Teams aksiyon ucu; ikisi de zaman damgalı, yeniden oynatmaya karşı korumalı HMAC-SHA256 imzalarıyla doğrulanır. Her Approve / Reject kontrolü ayrıca tek bir talebe bağlı, tek kullanımlık bir aksiyon token’ı taşır ve signing secret’ı yalnızca sistem yöneticisi belirleyebilir.
- Studio’da şema gezgini — seçili bağlantının şemalarını, tablolarını, görünümlerini ve sütunlarını gösteren bir yan panel ve adlarını tamamlayan bir editör. Bkz. aşağıda.
- Kurumsal giriş — sağlayıcıdan çıkışı da yapan OpenID Connect tek oturum açma ve kullanıcıları oluşturup askıya alan, grupları eşitleyen SCIM ile kullanıcı sağlama.
- QueryProxy dışında sırlar — bağlantı parolaları Vault, AWS Secrets Manager ya da Azure Key Vault referansı olabilir.
- Betikler ve CI — REST API ve
qpkomut satırı istemcisi. - Dinamik veri maskeleme — kolon deseni ve içerik regex kuralları, sonuçlar yazılırken uygulanır.
- İki adımlı doğrulama — kurtarma kodlu, isteğe bağlı TOTP; rol bazında zorunlu kılabileceğiniz kurulum genelinde bir gereksinim; her kod yalnızca bir kez kullanılabilir.
- Kurcalandığında fark edilen denetim günlüğü — kim istedi, kim onayladı, ne çalıştı, neye dokundu.
Şema gezgini
Query Studio’da Schema, editörün yanında seçili bağlantının şemalarını, tablolarını, görünümlerini ve sütunlarını tipleriyle gösteren bir panel açar. Arama listeyi süzer, Refresh yeniden okur, bir ada tıklamak onu editöre ekler; veritabanı gerektiriyorsa tırnaklanır. Maskeleme kuralının kapsadığı bir sütunda kilit görünür. Dar ekranlarda panel çekmece olarak açılır.
Editör tablo ve sütun adlarını aynı şemadan, bağlantının sürücüsünün SQL lehçesinde (PostgreSQL, MySQL, MariaDB, SQL Server ya da SQLite) tamamlar. Format (Ctrl/Cmd+Shift+F) ifadeyi yeniden biçimlendirir.
Şema, hedef veritabanının kataloğundan sabit sorgularla, salt okunur bir oturumda
ve onaysız okunur; bu yüzden yalnızca bağlantıyı kullanabilenler görür.
MySQL ve MariaDB’de panel yalnızca bağlantının kendi veritabanını listeler. Çok
büyük bir şema QUERYPROXY_SCHEMA_MAX_COLUMNS sütunda kesilir ve panel bunu
söyler. Sonuç önbelleğe alınır; ayarlar
Yapılandırma sayfasındadır.
Mimariye bakış
QueryProxy tek bir Laravel uygulaması + bir kuyruk işçisi + bir zamanlayıcıdır —
üçü de tek bir konteynerde, tek bir docker run ile başlar. Varsayılan kurulumda hiçbir harici
servis gerekmez: uygulama veritabanı SQLite, kuyruk veritabanı tabanlıdır.
Büyüdüğünüzde MySQL/PostgreSQL ve Redis’e geçmek bir taşıma değil, yapılandırma
değişikliğidir.
Lisans
QueryProxy, AGPL-3.0 lisansıyla açık kaynaktır. Değiştirilmiş bir kopyayı ağ servisi olarak çalıştırıyorsanız, değişikliklerinizi aynı lisansla yayımlamanız gerekir.
Denemeye hazır mısınız? Hızlı başlangıç ile devam edin.