Skip to main content

Command Palette

Search for a command to run...

SQL Change Guard: Veritabanı Değişikliklerini Kontrol Altına Almanın Eksiksiz Yolu

Published
8 min read
S

I’m a passionate software engineer specializing in SQL change management, database security, and DevOps automation. With over 17 years of experience in the banking sector, I focus on building tools and processes that make database deployments safer, more auditable, and automated.

As the creator of SQL Change Guard, I develop solutions that use risk scoring and AI-powered code analysis to detect dangerous SQL scripts before they reach production. I’m dedicated to helping teams minimize downtime and data loss through smarter change governance.

When I’m not coding, I enjoy sharing insights about secure development practices, WPF desktop applications, and integrating modern CI/CD pipelines.

Feel free to connect or reach out at info@sqlchangeguard.com

Bir kurumun veritabanı altyapısını düşünün. Onlarca, belki yüzlerce SQL Server örneği. Her gün yüzlerce değişiklik. Geliştiriciler, DBA'lar, sistem yöneticileri, danışmanlar — hepsi bu veritabanlarına erişiyor. Bu ortamda şu soruların yanıtını verebiliyor musunuz? Son 30 günde veritabanlarınızda kaç değişiklik yapıldı? Bunların kaçı onaylıydı? Kaçı prosedür dışıydı? Bir denetim geldiğinde hangi değişikliğin kim tarafından, hangi onaylayla yapıldığını dakikalar içinde raporlayabilir misiniz? Çoğu kurum bu soruların yanıtını bilmiyor. SQL Change Guard tam bu boşluğu doldurmak için geliştirildi.

SQL Change Guard Nedir? SQL Change Guard, SQL Server ortamlarında veritabanı değişikliklerini uçtan uca yöneten ve denetleyen kurumsal bir platform. Tek cümleyle özetlemek gerekirse: her SQL değişikliği platforma gelir, analiz edilir, onaylanır, test edilir, production'a alınır ve kayıt altında tutulur. Platform dışından yapılan her değişiklik ise otomatik tespit edilir. Ama bu tek cümle platformun gerçek derinliğini anlatmıyor. Katman katman açıklayalım.

Deployment Öncesi: 65+ Otomatik Validasyon Bir geliştirici değişiklik scriptini platforma yüklediği anda otomatik analiz başlar. 65'ten fazla kural devreye girer. Bu kurallar neler? Birkaç örnek: Kritik risk kuralları:

WHERE koşulsuz DELETE veya UPDATE var mı? DROP TABLE içeriyor mu? Büyük tabloda tam tablo taraması zorlayan bir değişiklik mi? Sistem tablolarına dokunuyor mu?

Yüksek risk kuralları:

Büyük tabloda index düşürme/ekleme var mı? Foreign key kısıtlaması değiştiriliyor mu? Stored procedure mantığı köklü biçimde değişiyor mu?

Orta ve düşük risk kuralları:

Yeni kolon NULL mı, NOT NULL mı? Naming convention'a uygun mu? Yorum satırı var mı?

Her kural bir ağırlık taşır ve sonuçta 0-100 arasında bir risk skoru hesaplanır.

Risk Skoru: 0'dan 100'e Risk skoru platformun en kritik çıktılarından biri. Sadece bir sayı değil, bir karar mekanizması. 0-30 arası (Düşük risk): Onay süreci hızlandırılır. Tek seviyeli onay yeterli olabilir. 31-60 arası (Orta risk): Standart onay süreci işletilir. DBA incelemesi zorunlu. 61-80 arası (Yüksek risk): Ek onay seviyesi gerekir. IT yöneticisi dahil edilir. Sandbox testi zorunlu. 81-100 arası (Kritik risk): Değişiklik otomatik olarak engellenir. Manuel inceleme ve üst yönetim onayı gerekir. Bu mekanizma sayesinde tüm değişiklikler aynı ağırlıkla muamele görmez. Düşük riskli değişiklikler hız kazanırken kritik değişiklikler gerekli dikkati çeker.

Sandbox: Production'a Dokunmadan Test Onay sürecine girmeden önce değişiklik sandbox ortamında test edilebilir. Bu özellik özellikle DML değişiklikleri için kritik. Sandbox, BEGIN-ROLLBACK mekanizmasını kullanır. Script production verisine karşı çalıştırılır, sonuçlar görülür ama değişiklik kaydedilmez. Geliştirici şunları görür:

Script kaç satır etkileyecek? Hangi kayıtlar değişecek, örnek verilerle Tahmini çalışma süresi Olası kilit senaryoları

Production'a geçmeden önce gerçek etkiyi görmek, sürprizleri ortadan kaldırır.

Otomatik Rollback Script Üretimi Her deployment için otomatik rollback script üretilmesi SQL Change Guard'ın en beğenilen özelliklerinden biri. Geliştirici bir stored procedure güncellemesi yaptıysa platform otomatik olarak eski versiyonu saklar ve geri alma script'ini hazır tutar. Tablo değişikliği için kolon geri alma adımları, index değişikliği için geri oluşturma script'i, data migration için ters yönde script — bunların tamamı otomatik. Rollback script'i ayrıca saklanır ve her an erişilebilir. Bir kriz anında "nasıl geri alacağız?" sorusu zaten yanıtlanmış olur.

Rol Bazlı Onay Akışı SQL Change Guard'ın onay mekanizması tek boyutlu değil. Risk seviyesine ve organizasyon yapısına göre şekillendirilebilir. Roller:

Talep Eden: Değişikliği oluşturur ve platforma yükler Teknik Gözden Geçiren: DBA ya da kıdemli geliştirici. Teknik doğruluğu değerlendirir Onaylayan: IT yöneticisi veya değişiklik yöneticisi. İş etkisini değerlendirir Deployment Yetkililisi: Onaylanan değişikliği production'a alır

Görevler ayrılığı prensibi sistem tarafından zorlanır: değişikliği yükleyen kişi aynı değişikliği onaylayamaz. Bu kural teknik bir kısıtlama, politika belgesi değil.

Release Package Yönetimi Gerçek dünyada değişiklikler tek tek gelmez. Bir özellik geliştirmesi 15 farklı script içerebilir. Bu script'lerin doğru sırayla, doğru ortamlara alınması gerekir. Release Package bu sorunu çözer. İlgili değişiklikler bir paket altında gruplanır. Paketin bağımlılık sırası tanımlanır: önce tablo değişikliği, sonra stored procedure, sonra data migration. Paket bütünüyle onaylanır, bütünüyle deploy edilir. Böylece "Şu script atıldı mı? Hangisi önce gitmeliydi?" karmaşası ortadan kalkar.

External Database Changes Monitoring: En Kritik Özellik SQL Server mimarisinin gerçeği şu: sysadmin yetkisine sahip biri SSMS'i açar ve doğrudan istediği değişikliği yapabilir. Bunu teknik olarak engellemek mümkün değil. Ama tespit etmek mümkün. External Database Changes Monitoring, platform dışından yapılan her değişikliği otomatik tespit eder ve ilgili kişilere alarm gönderir. Nasıl çalışır? Platform, veritabanı şemasının düzenli anlık görüntülerini alır. Her kontrol döngüsünde mevcut durum bir öncekiyle karşılaştırılır. Fark varsa değişiklik tespit edilir. Bu değişiklik platform üzerinden yapılmış mı? Kayıtlarda var mı? Yoksa alarm üretilir. Sabah 08:00'de gelen bildirim şu olabilir: "Gece 23:47'de dbo.Siparisler tablosunda ALTER TABLE işlemi tespit edildi. Platform kaydı bulunamadı. İlgili kişi: [bağlantı bilgisi]." Engelleyemediniz. Ama haberdar oldunuz. Ve bu fark, kontrollü müdahale ile kör kalmak arasındaki farktır.

Query Result Veri Maskeleme DBA bir sorguyu platformdan çalıştırıyor. Sorgu sonucu müşteri adları, TC kimlik numaraları, kredi kartı bilgileri içeriyor. Maskeleme aktif olduğunda yetkisiz kullanıcı bu sonucu görse de hassas alanlar maskelenmiş görünür. Ad: ali **** TC: 12345* IBAN: TR33 **** **** **** **** ** Bu özellik hem KVKK uyumu hem de iç güvenlik açısından kritik. Platform üzerinden çalıştırılan her sorgu, kullanıcının yetki seviyesine göre filtrelenerek gösterilir.

Object History: Nesne Değişiklik Geçmişi Bir stored procedure'ün tüm versiyon geçmişine tek ekrandan bakabilmek. Object History modülü her veritabanı nesnesinin eksiksiz değişim tarihçesini sunar:

Versiyon 1: Kim oluşturdu, ne zaman Versiyon 2: Kim değiştirdi, ne değişti, hangi onaylayla Versiyon 3: Kim değiştirdi, hangi release package içinde

İki versiyon arasındaki fark diff görünümüyle yan yana gösterilir. "Geçen ay bu procedure neden değişmişti?" sorusu saniyeler içinde yanıtlanır.

Raporlama Modülü SQL Change Guard'ın raporlama altyapısı hem operasyonel hem de denetimsel ihtiyaçları karşılar. Operasyonel Raporlar Deployment Geçmişi Raporu Belirli bir dönemde yapılan tüm deployment'lar. Hangi değişiklik, kim tarafından, hangi tarihte, başarılı mı başarısız mı. Filtreleme: tarih aralığı, kullanıcı, veritabanı, risk seviyesi. Risk Dağılımı Raporu Yapılan değişikliklerin risk seviyelerine göre dağılımı. Kritik ve yüksek riskli değişiklikler ne kadar? Bu oran artıyorsa neden? Onay Süreci Performans Raporu Ortalama onay süresi ne kadar? Hangi onaylayanda tıkanıyor? Hangi tür değişiklikler en uzun bekleme süresine sahip? Kullanıcı Aktivite Raporu Hangi kullanıcı ne kadar değişiklik talebi oluşturdu? Kaçı onaylandı, kaçı reddedildi? Prosedür dışı değişiklik yapan kullanıcılar var mı? Denetim Raporları Full Audit Trail Raporu Belirli bir dönemdeki tüm değişiklikler: talep, onay, deployment, doğrulama — her adım eksiksiz kayıt. KVKK, BDDK, ISO 27001 denetimlerinde sunulmak üzere biçimlendirilmiş. Prosedür Dışı Değişiklik Raporu Platform dışından yapılan değişiklikler. Ne zaman, hangi nesne, tespit yöntemi, takip durumu. Bu rapor hem iç güvenlik denetimleri hem de regülasyon uyumu için kritik. Erişim ve Yetki Raporu Platforma erişimi olan kullanıcılar, yetki seviyeleri, son erişim tarihleri. Ayrılan çalışanların hesapları kapatıldı mı? Deployment Başarı/Başarısızlık Analizi Başarısız deployment'ların kök neden dağılımı. Tekrarlayan hatalar var mı? Hangi değişiklik kategorisi en fazla rollback gerektirdi?

COBIT, ITIL, KVKK ve ISO 27001 Uyumu SQL Change Guard bu çerçeveleri desteklemek üzere tasarlandı. COBIT BAI06: Değişiklik yönetimini tanımlar ve değişikliklerin kontrollü, onaylı ve izlenebilir olmasını gerektirir. SQL Change Guard bu gereksinimlerin tamamını karşılar. ITIL Change Management: Normal, standart ve acil değişiklik kategorileri. SQL Change Guard bu kategorileri destekler, her tip için farklı süreç tanımlanabilir. KVKK Teknik Tedbirler: Kişisel veri içeren veritabanlarında erişim logları, değişiklik kayıtları ve bu kayıtların düzenli denetimi. SQL Change Guard bu kayıtları otomatik tutar ve raporlar. ISO 27001 A.12.1.2: Değişiklik yönetimi prosedürlerinin kurulması ve belgelenmesi. Platform bu prosedürün hem uygulama hem belgeleme aracı. Bir denetimde "değişiklik yönetim sürecinizi gösterir misiniz?" sorusuna cevap vermek SQL Change Guard ile artık birkaç tıklamaya indirgiyor.

Performance Report Değişiklik sonrası performans nasıl etkilendi? Performance Report modülü deployment öncesi ve sonrası sorgu performansını karşılaştırır. Hangi sorgular yavaşladı, hangileri hızlandı, ortalama response time nasıl değişti? Bu bilgi hem mevcut deployment'ın etkisini ölçer hem de gelecekteki benzer değişiklikler için referans oluşturur.

Tamamen On-Premise, İnternet Bağlantısı Gerekmez SQL Change Guard kurum içi ağda çalışır. Herhangi bir veri dışarıya çıkmaz. Bu özellik özellikle şu kurumlar için kritik:

Bankalar ve finans kurumları: yasal düzenlemeler veri lokasyonunu kısıtlıyor Kamu kurumları: hassas veri kurumun kontrolünde kalmalı Savunma ve kritik altyapı: güvenlik gereksinimleri cloud kullanımını engelliyor Sağlık kurumları: hasta verisi dışarıya çıkamaz

Kurulum basit: DLL ve EXE dosyalarının kopyalanması. Setup paketi yok, ağır bağımlılık yok.

Kim İçin? DBA için: Tüm değişiklikleri tek noktadan görme, prosedür dışı değişiklik alarmları, nesne geçmişine anında erişim. Geliştirici için: Deployment öncesi otomatik validasyon, sandbox test imkânı, rollback script'inin hazır olması. IT Yöneticisi için: Deployment sürecinin tam görünürlüğü, risk bazlı onay mekanizması, denetim raporları. Compliance ve Denetim Ekibi için: KVKK/BDDK/ISO 27001 uyumlu raporlar, tam audit trail, prosedür dışı değişiklik geçmişi. Üst Yönetim için: Kurumun veritabanı değişiklik riskinin özetlendiği yönetim raporları.

Rakiplerden Farkı Liquibase, Flyway, Redgate — bunlar geliştirici araçları. Migration yönetimi, şema versiyonlama, DevOps entegrasyonu konusunda güçlüler. SQL Change Guard farklı bir soruyu çözüyor: kurumsal yönetişim, onay akışı, compliance ve denetim. Özellikle Türkiye'ye özgü bir fark: BDDK ve KVKK uyumu, Türkçe arayüz, yerel destek ve on-premise çalışma zorunluluğu. Yabancı araçlar bu ihtiyaçlara yönelik değil.

Sonuç Veritabanı değişiklik yönetimi artık sadece "iyi bir pratik" değil. Regülasyon zorunluluğu, operasyonel olgunluk ve kurumsal risk yönetiminin temel bileşeni. SQL Change Guard bu ihtiyaca tam karşılık veren, Türkiye'nin özel koşullarına uygun, uçtan uca bir platform. Deployment öncesi validasyondan prosedür dışı değişiklik tespitine, rol bazlı onay akışından denetim raporlarına kadar eksiksiz bir döngü. "Kim ne yaptı?" sorusu artık yanıtsız kalmıyor.

Ücretsiz demo ve daha fazla bilgi için: sqlchangeguard.com

More from this blog

S

SQL Change Guard

81 posts