# Giriş

> QueryProxy nedir, hangi sorunu çözer ve bir sorgu geliştiricinin editöründen maskelenmiş, denetlenmiş sonuca nasıl ulaşır.

- Dokümantasyon: Başlangıç
- Güncelleme: 2026-11-04
- Kaynak: https://queryproxy.com/tr/docs/
- Dil: tr-TR
- Yazar: Muhammet Şafak

---
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:

1. **Gönder** — geliştirici, DBA'in kendisine tanımladığı bir bağlantı üzerinde,
   korumalı editörde SQL yazar. Kimlik bilgileri şifreli kasadan çıkmaz.
2. **Denetle** — SQL çalışmadan önce parse edilip incelenir: `WHERE`'siz
   `UPDATE`/`DELETE` reddedilir, `LIMIT`'siz `SELECT`'e limit eklenir, sunucuda
   kod çalıştırmaya ya da dosyalara uzanan komutlar engellenir.
3. **Onayla** — bir DBA, talebi web kuyruğundan ya da doğrudan Slack / Teams'ten
   onaylar veya reddeder. Kimse kendi talebini onaylayamaz.
4. **Ç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.

```text
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](/tr/postgresql-erisim-denetimi/),
  [MySQL ile MariaDB](/tr/mysql-mariadb-erisim-denetimi/),
  [SQL Server](/tr/sql-server-erisim-denetimi/) ve SQLite hedefleri.
- **SQL korumaları** — desen eşleme değil, gerçek parse ile uygulanır. Arkasındaki
  fikir [veritabanı erişim denetimi](/tr/veritabani-erisim-denetimi-nedir/)
  yazısında anlatılır; diğer araçlarla [karşılaştırması](/tr/compare/) 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](#şema-gezgini).
- **Kurumsal giriş** — sağlayıcıdan çıkışı da yapan
  [OpenID Connect tek oturum açma](/tr/docs/tek-oturum-acma/) ve kullanıcıları
  oluşturup askıya alan, grupları eşitleyen [SCIM ile kullanıcı sağlama](/tr/docs/scim-kullanici-saglama/).
- **QueryProxy dışında sırlar** — bağlantı parolaları
  [Vault, AWS Secrets Manager ya da Azure Key Vault referansı](/tr/docs/harici-gizli-bilgiler/)
  olabilir.
- **Betikler ve CI** — [REST API](/tr/docs/rest-api/) ve
  [`qp` komut satırı istemcisi](/tr/docs/komut-satiri-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](/tr/docs/yapilandirma/#şema-gezgini) 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](https://github.com/QueryProxy/QueryProxy/blob/main/LICENSE)
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ıç](/tr/docs/hizli-baslangic/) ile devam edin.
