SQL Server'da Linked Server Değişiklikleri Neden Göz Ardı Edilemez?
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
Linked Server, farklı SQL Server örneklerine ya da farklı veritabanı sistemlerine bağlantı kurmanın yolu. Pratik bir özellik ama değişiklik yönetimi açısından ciddi riskler taşıyor.
Linked Server Neden Kritik? Bir Linked Server tanımlandığında o bağlantı üzerinden başka sistemlere erişilebilir. Sorgular çalıştırılabilir, veri çekilebilir, hatta veri yazılabilir. Bu demek oluyor ki Linked Server yapılandırması değiştiğinde etkisi tek bir veritabanıyla sınırlı değil. Birden fazla sistem etkilenebilir.
Yaygın Riskler Yetkisiz Linked Server eklenmesi Biri yeni bir Linked Server tanımladı. Bu bağlantı üzerinden dışarıya veri aktarılabilir. Kimsenin haberi yok. Mevcut Linked Server'ın yapılandırması değişti Bağlantı kimlik bilgileri güncellendi. Bunu kullanan stored procedure'ler çalışmayı durdu. Neden? Kim değiştirdi? Linked Server üzerinden aşırı yetki Uzak sistemde Linked Server için tanımlanan kullanıcı gereğinden fazla yetkiye sahip. Bu kullanıcı üzerinden uzak sistemde istenmeyen işlemler yapılabilir.
Mevcut Linked Server'ları Denetlemek sql-- Sistemdeki tüm Linked Server'ları listele SELECT s.name AS LinkedServerAdi, s.product AS Urun, s.provider AS Provider, s.data_source AS VeriKaynagi, s.modify_date AS SonDegisiklikTarihi, sl.remote_name AS UzakKullanici FROM sys.servers s LEFT JOIN sys.linked_logins sl ON s.server_id = sl.server_id WHERE s.is_linked = 1 ORDER BY s.name; Bu sorgunun çıktısını düzenli olarak gözden geçirin. Tanımadığınız bir Linked Server varsa kim ekledi, neden?
Linked Server Değişikliklerini İzlemek Linked Server değişiklikleri standart DDL Trigger ile yakalanamaz çünkü bunlar server düzeyinde nesneler. Server düzeyinde audit kurmak gerekir. sql-- Server düzeyinde audit oluştur CREATE SERVER AUDIT LinkedServerAudit TO FILE (FILEPATH = 'C:\AuditLogs') WITH (ON_FAILURE = CONTINUE);
ALTER SERVER AUDIT LinkedServerAudit WITH (STATE = ON);
-- Linked Server değişikliklerini izle CREATE SERVER AUDIT SPECIFICATION LinkedServerChanges FOR SERVER AUDIT LinkedServerAudit ADD (SERVER_OBJECT_CHANGE_GROUP) WITH (STATE = ON);
Linked Server Politikası Her kurumun Linked Server için net bir politikası olmalı. Kim Linked Server ekleyebilir? Hangi sistemlere bağlantı izin veriliyor? Her Linked Server için iş gerekçesi belgelenmiş mi? Düzenli olarak kullanılmayan Linked Server'lar kaldırılıyor mu? Bu sorular yanıtlanmadan Linked Server yönetimi kör bir nokta olmaya devam eder.
Sonuç Linked Server'lar güçlü ama sessiz riskler taşıyan nesneler. Değişiklik yönetimi kapsamına alınmadığında hem güvenlik hem de operasyonel açıdan ciddi sorunlara kapı aralayabilir. Detaylı bilgi için: sqlchangeguard.com
