# QueryProxy ile tanışın

> Her üretim sorgusunun önüne bir onay koyan, kimlik bilgisi dağıtmayan açık kaynak ve kendi sunucunuzda çalışan portal.

- Yayın: 2026-09-07
- Güncelleme: 2026-10-10
- Tags: duyuru, sürüm
- Kaynak: https://queryproxy.com/tr/blog/queryproxy-tanitim/
- Dil: tr-TR
- Yazar: Muhammet Şafak

---
:::note[Editör notu — 1 Ekim 2026'da güncellendi]
Bu yazı ilk sürümü duyurmuştu. O günden bu yana bazı ayrıntılar değişti
(bkz. [değişiklik günlüğü](https://github.com/QueryProxy/QueryProxy/blob/main/CHANGELOG.md)):

- **Yönetim komutları:** `GRANT`, `REVOKE` ve kullanıcı yönetimi hâlâ doğrudan
  engellenir; `CREATE EXTENSION`, `DO` ve `SET GLOBAL` / `SET PERSIST` ise
  artık yalnız güvenilmeyen prosedürel diller ve tehlikeli değişkenler için
  reddedilir. Bkz. [SQL korumaları](/tr/docs/sql-korumalari/).
- **Kendi talebini onaylama:** sistem yöneticisi kendi talebini onaylayabilir;
  bu istisna denetim günlüğüne yazılır. Bkz. [Onay akışı](/tr/docs/onay-akisi/).
- **Roller:** Admin sistem genelinde bir roldür; DBA, Developer ve Auditor
  takım bazında atanır.
- **İlk hesap:** web üzerinden kayıt yoktur. İlk yönetici ilk açılışta
  `QUERYPROXY_ADMIN_EMAIL` / `QUERYPROXY_ADMIN_PASSWORD` ile ya da
  `php artisan queryproxy:create-admin` ile oluşturulur; kurulum tek bir
  `docker run` ile yapılır. Bkz. [Hızlı başlangıç](/tr/docs/hizli-baslangic/).
:::

Her mühendislik ekibi eninde sonunda şu konuşmayı yapar: bir geliştiricinin
gerçek bir hatayı ayıklamak için üretim verisine ihtiyacı vardır ve içeri girmenin
yolları bellidir — parolayı vermek, tünel açmak ya da bütün gün başkaları adına
sorgu çalıştıran bir DBA. Üçü de kötüdür: ilki kazaların başladığı yerdir, son
ikisi ölçeklenmez.

**QueryProxy** bizim cevabımız: ekibinizle veritabanlarınızın arasında duran,
paylaşılan parolaları bir iş akışıyla değiştiren, kendi sunucunuzda çalışan bir
portal.

## Nasıl çalışır

1. Geliştirici, DBA'in kendisine tanımladığı bir bağlantı üzerinde korumalı
   editörde SQL yazar. Kimlik bilgileri AES-256 ile şifreli kasada kalır.
2. Talep daha gönderilmeden SQL parse edilip denetlenir: `WHERE`'siz
   `UPDATE`/`DELETE` reddedilir, `LIMIT`'siz `SELECT`'e limit eklenir
   (varsayılan 1000, üst sınır 10000), yönetim komutları doğrudan engellenir.
3. Bir DBA onaylar ya da reddeder — web kuyruğundan veya etkileşimli düğmelerle
   doğrudan Slack'ten. Her sohbet geri çağrısı HMAC-SHA256 ile doğrulanır,
   tekrar saldırılarına karşı korunur; kimse kendi talebini onaylayamaz (sistem
   yöneticisi bunu geçersiz kılabilir; geçersiz kılma denetim günlüğünde
   işaretlenir).
4. Kuyruk işçisi sorguyu asenkron çalıştırır; sonuçları maskeleme kurallarından
   geçirerek satır satır akıtır — kurallarınızla eşleşen değerler diske değmeden
   *önce* maskelenir — ve her adımı yalnızca eklenen bir denetim günlüğüne yazar.

## Bugün nelerle geliyor

- Admin / DBA / Developer / Auditor rollü, sıkı izolasyonlu takımlar
- PostgreSQL, MySQL, MariaDB, SQLite ve SQL Server hedefleri (SQL Server için özel imaj gerekir: yayımlanan imajda sürücü yoktur)
- Desen eşlemeyle değil, gerçek parse ile uygulanan SQL korumaları
- Slack etkileşimli onayları ve yeniden oynatmaya karşı korumalı Teams HMAC aksiyon ucu
- Kolon deseni ve içerik regex'iyle veri maskeleme (full / partial / hash)
- Rol bazında zorunlu kılınabilen, isteğe bağlı TOTP iki adımlı doğrulama
- Akış hâlinde NDJSON sonuçlar, CSV dışa aktarma, otomatik saklama temizliği
- Yalnızca eklenen, filtrelenebilir, dışa aktarılabilir denetim günlüğü (uygulama kayıtları ne düzenler ne siler)

## İki dakikada deneyin

```bash
docker run -d --name queryproxy \
  -p 7432:7432 \
  -v queryproxy-data:/var/www/html/storage/app \
  -e QUERYPROXY_ADMIN_EMAIL=you@example.com \
  -e QUERYPROXY_ADMIN_PASSWORD='choose-a-strong-password' \
  queryproxy/queryproxy
```

`http://localhost:7432` adresini açıp bu e-posta adresiyle giriş yapın. Admin
değişkenleri ilk açılışta ilk hesabı oluşturur; vermezseniz hesabı
`docker exec -it queryproxy php artisan queryproxy:create-admin` ile açarsınız.
Bunun yerine her rolden hesabı olan bir demo takım denemek için
`QUERYPROXY_SEED_DEMO=true` ile birlikte `QUERYPROXY_SEED_DEMO_FORCE=true`
verin (imaj `APP_ENV=production` ile çalıştığından seeder aksi hâlde reddedilir)
— yalnızca demo instance'lar içindir, production için değil. Tek seferlik parola
konteyner loglarına yazılır. [Dokümantasyon](/tr/docs/),
[hızlı başlangıçtan](/tr/docs/hizli-baslangic/)
[Slack kurulumuna](/tr/docs/slack-entegrasyonu/) ve
[koruma kurallarının](/tr/docs/sql-korumalari/) ayrıntısına kadar her şeyi
kapsıyor.

QueryProxy, AGPL-3.0 lisansıyla ücretsiz ve açık kaynaktır. Yıldızlayın,
çatallayın, bu gece çalıştırın — keskin bir şey bulursanız
[issue takipçisi](https://github.com/QueryProxy/QueryProxy/issues) ve
[güvenlik politikası](https://github.com/QueryProxy/QueryProxy/blob/main/SECURITY.md)
sizi bekliyor.
