QueryProxy

SQL sorgu onay akışı nedir?

Güncelleme:

Bir sorgu onay akışı, “çalıştır ve umut et” yerine “gönder ve biri baksın” der. Geliştirici SQL yazar ama çalıştırmaz; ikinci bir kişi ifadeyi inceler; sistem sorguyu geliştirici adına çalıştırır ve denetlenmiş bir sonuç döndürür. Geliştirici kimlik bilgisini hiç eline almaz.

Bir talebin geçtiği durumlar

Gönderildi. Geliştirici, yetkilendirildiği bir bağlantıya karşı bir ifade yazar. Henüz hiçbir şey çalışmadı.

Denetlendi. Sistem, herhangi bir insan görmeden önce SQL’i parse eder. Bu makine işidir: WHERE’siz UPDATE ve DELETE’i reddet, sınırsız bir SELECT’e LIMIT ekle, yönetimsel ifadeleri engelle. Bunları otomatik yakalamak, inceleyenlerin dikkatini sözdizimine değil niyete ayırmasını sağlar.

Beklemede. Talep, karar verebilecek kişilere görünür biçimde bekler. Kimsenin bakmadığı bir yerde bekliyorsa akış çoktan başarısız olmuştur.

Onaylandı ya da reddedildi. Bir inceleyen karar verir ve her iki sonuç da kimin ne zaman karar verdiğiyle birlikte kaydedilir.

Çalıştırıldı. Sistem bağlanır ve ifadeyi çalıştırır. Bekleme süresi sınırsız olduğundan bu iş bir web isteğinde değil, bir işçide olmalıdır.

Döndü. Sonuçlar sınırlandırılmış, maskelenmiş ve bir saklama kuralına bağlı olarak depolanmış biçimde döner — ardından denetim günlüğüne yazılır.

Tasarımla önlenmesi gereken hata biçimleri

Onay yorgunluğu. Kırk talep gören bir inceleyen kırkını da okumadan onaylar. Korumalar, açıkça yanlış olanı insan devreye girmeden reddederek yardımcı olur; böylece bir kişiye ulaşan şey okunmaya değer olur.

Kimsenin kullanmadığı akış. Onay, hâlâ orada duran bastion sunucudan yavaşsa insanlar bastion’ı kullanır. Ya onay yolu hızlı yol olur ya da alternatif kapanır.

Kendine onay. İnceleyenlerin kendi taleplerini onaylayabildiği bir akış, akış kılığına girmiş bir günlükleme sistemidir. Bunu kodda zorlayın.

Sınırsız sonuçlar. Yüz milyon satır üzerinde onaylanmış bir SELECT, onaylanmış bir kesintidir. Sınırlayın ve tamponlamak yerine akıtın.

Tek denetim olarak onay. Onay, bir ifadenin çalışıp çalışmayacağına karar verir. Geri ne döneceği konusunda hiçbir şey yapmaz. Maskeleme olmadan onaylanmış bir sorgu bile birinin dizüstü bilgisayarına maskesiz kişisel veri koyar.

QueryProxy bunu nasıl uyguluyor

QueryProxy bu akışın ürünleşmiş hâlidir. Talepler korumalı bir düzenleyicide gönderilir, incelemeden önce bir AST denetleyicisi tarafından parse edilir ve DBA’lere hem web kuyruğunda hem de Approve ile Reject düğmeleri taşıyan bir Slack kartı olarak gösterilir — böylece karar, inceleyenin zaten bulunduğu yerde verilir. Teams’e kart bir duyuru olarak düşer; karar oradan, HMAC imzalı aksiyon ucunu çağıran bir otomasyonla (ör. bir Power Automate akışı) verilir; bkz. Slack ve Teams üzerinden SQL onayı. Kendine onay kodda engellenir; bir sistem yöneticisi bunu geçersiz kılabilir ve geçersiz kılma denetim günlüğünde işaretlenir. Onaylanan sorgular imleç akışıyla bir kuyruk işçisinde çalışır, sonuçlar yazılırken kurallarınıza göre maskelenir ve her adım, uygulamanın hiçbir kaydı düzenlemediği ya da silmediği, yalnızca eklenen bir denetim günlüğüne düşer; bu kaydın neyi içermesi gerektiğini denetim kaydı yazısı anlatır. WHERE kuralı WHERE’siz UPDATE ve DELETE nasıl engellenir yazısında açıklanır.

Roller ve tam yaşam döngüsü için onay akışı dokümantasyonuna, parse edicinin neyi reddettiği için SQL korumaları referansına bakın. Korumalar motora göre farklılaşır; bkz. PostgreSQL, MySQL ve MariaDB ve SQL Server. Onay kaydının ve denetim günlüğünün uyum kanıtıyla ilişkisi için SOC 2 ve veritabanı erişim denetimi, KVKK açısından hangi kanıta karşılık geldiği için KVKK ve veritabanı erişim denetimi sayfalarını okuyun.

Sık sorulanlar

SQL sorgu onay akışı nedir?
Bir geliştiricinin SQL ifadesini doğrudan çalıştırmak yerine incelemeye gönderdiği, ikinci bir kişinin onayladığı ya da reddettiği ve onaylanan ifadenin sistem tarafından geliştirici adına çalıştırıldığı süreçtir. Geliştirici veritabanı kimlik bilgisini hiç eline almaz ve sorguyu kendisi çalıştırmaz.
Üretim sorgularını kim onaylamalı?
Şemayı bilen ve talebi açan kişi olmayan biri — genellikle o veritabanının sahibi olan bir DBA ya da kıdemli bir mühendis. Politika yerine yazılımda zorlanmaya değer tek kural, kimsenin kendi talebini onaylayamamasıdır.
Onay akışı ekipleri yavaşlatır mı?
Bir bekleme ekler ve bu beklemenin uzunluğu tasarımın asıl problemidir. Onaylar iki düğmeli bir sohbet mesajı olarak geldiğinde bekleme genellikle dakikalarla ölçülür. Ayrı bir aracı açıp kuyruk aramayı gerektirdiğindeyse insanlar sistemin etrafından dolaşır ki bu, sistemin hiç olmamasından kötüdür.
Reddedilen sorgulara ne olur?
Reddedilen talep gerekçesiyle birlikte denetim izinde kalır; böylece kayıt yalnızca ne çalıştığını değil ne istendiğini de gösterir. Geliştirici emeğini kaybetmeden ifadeyi düzeltip yeniden gönderir.

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