Category Archives: MS SQL Server

SQL Server Row-Level Security (RLS)

SQL Server 2016 ile duyurulmuş olan satır seviyesinde güvenlik uygulaması kullanıcıların sadece yetkileri oldukları satırlara erişmesini sağlar.

Birçok kullanıcının aynı veri tabanını kullandığı ortamlarda kullanıcılar tablolarda sadece kendilerine ait bilgileri filtreleyerek eriştirmemizi sağlar.

Önemli bir uygulama olan RLS veri tabanı katmanında çalışır. Herhangi bir uygulamadan veriye erişim sağlanmak istendiğinde erişim kısıtlamaları uygulanır. Böylelikle daha iyi bir güvenlik katmanı sağlanır.

RLS Uygulaması:

Veri tabanıma ürün satışları ile ilgili bir tablo oluşturuyorum.

Satış tabloma satışlardan sorumlu personelin adı, satışın yapıldığı ülke ve miktarı giriyorum.

Güncelleme Dosyası ile Birlikte SQL Server Kurulumu

SQL server veri tabanı yönetim yazılımının güncellemeleri Service Pack ve Cumulative Update olmak üzere iki farklı yayın ile dağıtılır.

Service Pack güncellemeleri Microsoft un volume sitesinden indirdiğiniz SQL Server sürümünün içerisinde entegre olarak verilmektedir.

Cumulative Update leri ise ayrıca çekip yüklemeniz gerekmektedir.

SQL server yazılımını ilk kurduktan sonra CU güncellemelerini ayrı ayrı yükleyebilirsiniz.

İsterseniz SQL Server kurulumu sırasında da CU güncellemelerini kurulum sırasında yükleyebilirsiniz.

Bu işlemi yapmanın üç farklı yöntemi vardır.

Birincisi internete açıp olan sunucularda sql server yükleme penceresinden güncellemeleri buldurarak yükletebilirsiniz. Fakat bir çok veri tabanı yapısı internete kapalı ağda kurulmakta ve çalışmaktadır.  Güvenlik içinde bu gereklidir.

Kapalı ağda SQL server kurulumu sırasında CU paketlerini de kuruluma eklemek için komut satırından kurulum yapmalısınız. Bunun sebebi de güncelleme paketinin yerini parametre olarak belirtebilirsiniz.

Öncelikle SQL server media içeriğini sunucuda bir klasöre kopyalıyoruz.

Ardından CU güncellemesini de bir klasöre kopyalıyoruz.

Klasörler aynı olmak zorunda değil hatta dvd içerisine koyup ISO haline de getirebilirsiniz.

SQL Server Management Studio Vulnerability Assessment

MS SQL Server Management Studio 17.4 sürümü ile birlikte yeni gelen özelliklerden biri de sql server güvenlik açığı değerlendirme aracı.

Bu araç veri tabanlarınızda yer alan güvenlik açıklarını rapor ederek sizi bilgilendiriyor ve nasıl çözeceğinize dair bilgiler veriyor.

SQL server sürümünüz en az 2008 olmalıdır. Yönetim aracınınız ise mutlaka 17.4.

 

Veri tabanı bazlı kullanılan bu aracı veri tabanızın üzerine sağ tıklayarak “tasks” bölümünden erişebilirsiniz.

 

Kısa bir süre içerisinde (veri tabanının büyüklüğüne bağlı olarak) ayrıntılı bir rapor vermektedir.

 

Güvenlik açıkları yüksek, orta ve düşük olmak üzere üç risk kategorisinde incelenmektedir.

Her bir uyarıya bir kimlik numarası atanır. Bu kimlik numaraları VA ile başlar. VA1245, VA1281 gibi.

ID lere tıklayarak problem hakkınca detaylı bilgiyi alabilirsiniz. Bu bilginin sonlarında da çözüm için yapılması gereken işlemler yer alır.

Oldukça kullanışlı olan bu araç her çalıştırıldığında bilgisayarınıza json dosyaları oluşturulur. Instance ve veri tabanı bazında ayrı klasörlerde yer alır bu dosyalar. SMSS ile açıp daha sonra da inceleyebilirsiniz.

 

SQL Server 2017 Read-Scale Availability Groups

Microsoft, AlwaysOn özelliğini her yeni SQL Server sürümünde biraz daha ileriye taşıyor.

SQL 2016’da domaine dahil olmayan makineler ile de AlwaysOn yapabilirken SQL Server 2017 sürümünde Read-Scale Availability Groups özelliğini getirdi.

Read-Scale Availability Groups özelliği Windows failover cluster rolünü kullanmadan sunucuları AlwaysOn grubuna dahil etmemizi sağlıyor. Haliyle listener a da ihtyaç duymuyor bu sistem.

Fail-over rolü olmayınca high-availability ve disaster recovery amaçları içinde kullanamıyoruz veri tabanı sunucumuzu.

Peki ne için kullanılıyor bu özellik, sadece veri tabanını farklı sunucular üzerinde çoğaltmak için kullanılıyor. Bunu yaparken de yukarda belittiğim üzere failover cluster hizmetini kullanmamıza gerek kalmıyor. Quorum yok, listener yok ve haliyle otomatik failover mekanizması da devre dışı.

SQL sunucuda failover hizmeti kurulu değil iken AlwaysOn özelliğini aktif edebiliyoruz.

 

Yeni bir Availability group oluşturken “Cluster type” bölümünden NONE seçmemiz gerekmektedir.

 

Bu özellik ile grubumuzu oluşturunca failover hizmeti yüklü olmayan sunucuları gruba dahil edebiliyoruz.

Otomatik geçiş olmamasına rağmen elle geçiş imkanı sağlıyor.

Mevcut grupları daha sonradan NONE olarak değiştiremeyeceğimizden dolayı bu işlemi başta yapmamız gerekmektedir.

SQL Server da Linked Server Özelliği ile Excel Dosyasından Veri Çekilmesi

SQL Server da yer alan linked server özelliği sayesinde farklı sql server lara bağlantı kurup sanki kendi sql serverımızda işlem yapıyor gibi diğer sunuculardaki veri tabanlarında rahatlıkla çalışabiliriz.

Birçok kurum ve iş yerinde kullanılan bu güzel özellik oldukça işleri kolaylaştırmaktadır.

Linked serverın bir özelliği de excel dokümanına da bağlantı sağlayıp excel deki verileri sql sorgular ile çekmemizi sağlayabilmesidir.

Bu işlem için “Microsoft Access Database Engine 2010 Redistributable” yazılımına ihtiyacımız var. Bunun sebebi de varsayılan olarak sql server da excel bağlantısı için gerekli olan sağlayıcı (provider) yer almaz.

Aşağıdaki resimde SQL server 2016 üzerindeki sağlayıcılar yer almaktadır.

SQL Server Yedekleri İçin Windows Server Deduplication

Windows sunucu yazılımı üzerinde gelen Deduplication  yani tekilleştirme uygulaması ile oldukça fazla disk alanı kazancı sağlayabilirsiniz.

Sanal diskler, yedek alınan dosyaların tutulduğu dizinler ya da dosya sunucularında uygulanabilen bu teknoloji dosyaların yer kapladığı alanları tekrar hesaplayarak benzer olan alanların tekrar tekrar disk üzerinde yer kaplamasını engellemektedir.

İnternet üzerinde oldukça fazla kaynak bulabileceğini bu uygulamayı sql server üzerinde koşan veri tabanlarınızın yedeklerini tutuğunuz diskler üzerinde de rahatlıkla kullanabilirsiniz.

SQL server veri tabanları için sıkıştırma imkanı vermektedir. Sıkıştırdığınız yedekler oldukça küçülmektedir. Birde tekilleştirme kullandığınızda yedeklerinizin disk üzerinde kapladığı alan oldukça küçülecektir.

Aşağıdaki örnekte iki gün boyunca sürekli sıkıştırılarak yedek alınan bir veri tabanın tekilleştirme sonucunda diskte kapladığı alan gözükmektedir.

Yedeklerin alanı toplamda 2 GB tutarken tekilleştirme ile disk üzerinde kapladığı alan sadece 250 MB civarındadır.

SQL Server da Yedeklerin Sıkıştırılması

SQL Server da yedek alma işlemlerinde istenirse sıkıştırma özelliği kullanılabilir.

“Backup Options” da yer alan bu özellik ciddi anlamda sıkıştırma sağlamaktadır.

 

Resimde görüldüğü üzere dört katı bir oranda yerden kazanç sağlanabiliyor. Tabi ki veri tabanın büyüklüğüne göre bu değer değişebilir.

 

Varsayılan olarak SQL server yedek alma işleminde sıkıştırma işlemi yapmaz. Yerden ciddi anlamda kazanç sağlamanıza rağmen varsayılan olarak gelmemesi tabi ki de bir takım dezavantajlarından kaynaklanıyor.

Sıkıştırma yaptığınız yedeği, yedek alma işlemini yaptığınız SQL server sürümünden daha eski olan bir sürüm okuyamaz.

Sıkıştırma işlemi için işlemci gücü harcanır. Bu da sunucu için performans kaybı demektir.