SQL Server'da Yetkisiz Değişiklik Nasıl Tespit Edilir?
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
Sabah işe geldiniz. Bir şeylerin farklı olduğunu hissediyorsunuz. Bir sorgu beklenmedik sonuçlar döndürüyor, bir tablo eksik kolon içeriyor ya da bir stored procedure davranışı değişmiş. Kim yaptı? Ne zaman? Neden?
Bu soruların cevabını veremiyorsanız yalnız değilsiniz. SQL Server ortamlarında yetkisiz ya da prosedür dışı değişiklikler, birçok kurumun sessiz kabusu.
Sorunun Kökü: Sysadmin Yetkisi
SQL Server mimarisi gereği, sysadmin yetkisine sahip bir kullanıcı SSMS'i açar ve istediği değişikliği doğrudan yapabilir. Bunu hiçbir üçüncü taraf araç fiziksel olarak engelleyemez. Bu SQL Server'ın tasarım gerçeği.
Ancak engelleyememek, haberdar olamamak anlamına gelmez.
Yerleşik SQL Server Araçları
SQL Server'ın kendi içinde birkaç mekanizma var:
SQL Server Audit Server ya da database düzeyinde belirli olayları kayıt altına alır. DDL değişikliklerini, login olaylarını, tablo erişimlerini loglayabilirsiniz. Ancak kurulumu zahmetlidir, logları düzenli takip etmek ayrı bir iş yükü gerektirir ve alarm mekanizması yoktur.
DDL Trigger Veritabanı üzerinde CREATE, ALTER, DROP gibi işlemleri yakalamak için trigger yazabilirsiniz. Değişikliği anında bir log tablosuna yazdırabilirsiniz. Küçük ortamlar için işe yarar ama ölçeklenmesi zordur, bakım gerektirir ve kolayca devre dışı bırakılabilir.
Change Data Capture (CDC) Tablo bazında veri değişikliklerini izlemek için kullanılır. Yapısal değişiklikleri değil, satır bazlı veri değişikliklerini yakalar. Farklı bir ihtiyaca hitap eder.
Gerçek Hayatta Neler Oluyor?
Kurumların büyük çoğunluğunda değişiklik yönetimi şöyle işliyor:
Geliştirici ya da DBA, değişikliği SSMS'ten doğrudan çalıştırıyor
E-posta ile bilgi veriliyor ya da verilmiyor
Bir şeyler bozulduğunda kim yaptı sorusu yanıtsız kalıyor
Audit talebi geldiğinde eldeki tek şey eksik loglar
Bu tablo hem operasyonel risk hem de compliance açısından ciddi bir açık.
İdeal Süreç Nasıl Olmalı?
Sağlıklı bir değişiklik yönetimi şu unsurları içermelidir:
Her değişiklik onay sürecinden geçmeli
Kimin, ne zaman, hangi değişikliği yaptığı kayıt altında olmalı
Sistem dışından yapılan her manuel müdahale otomatik tespit edilmeli ve alarm üretmeli
Deployment geçmişi her zaman erişilebilir olmalı
Böyle bir yapı kurulduğunda hem ekip disiplini sağlanır hem de herhangi bir denetimde tam audit trail sunulabilir.
SQL Change Guard Nasıl Yaklaşıyor?
Biz bu problemi iki katmanlı bir yaklaşımla çözüyoruz.
Doğru yolu kolaylaştır: SQL Change Guard üzerinden yapılan tüm değişiklikler onay süreciyle yönetilir, tam olarak kayıt altına alınır.
Yanlış yolu tespit et: Platform dışında yapılan her değişiklik otomatik olarak tespit edilir ve ilgili kişilere alarm gönderilir.
Yani sysadmin gece 02:00'de SSMS'ten bir şey yapmış olsa bile, sabah siz haberdar oluyorsunuz.
Detaylı bilgi için: sqlchangeguard.com
Sonuç
SQL Server'da yetkisiz değişiklikleri sıfıra indirmek mümkün olmayabilir. Ama her değişiklikten haberdar olmak, kimin ne yaptığını tam olarak bilmek ve bunu belgeleyebilmek mümkün.
Kurumsal disiplin politikalarla başlar, doğru araçlarla tamamlanır.
