0

SQL Server 2016 Güvenlik Özellikleri : Row-Level Security. SQL Server 2016 ile gelen güvenlik özellikleri 2. makalemizde satır bazlı yetkilendirme sağlayan Row-Level Security özelliğine değineceğiz. Row-Level Security ya da kısaca RLS, aynı tabloya yetkisi olan ancak tabloda farklı satırları görmesi gereken kullanıcı senaryolarında, bunu karmaşık view’lar ya da uygulama katmanında yapılacak ekstra kodlamaya gerek kalmadan kolaylıkla yapılmasını sağlar.


Resim-1

Row-Level Security Nasıl Çalışır?

SQL Server Always Encrypted örneğimizdeki tabloyu biraz değiştirelim ve müşterilere ilgili müşteri yöneticilerini ekleyelim. Bu kez RandomNameGenerator yok J


Resim-2

Yapmak istediğimiz senaryo her müşteri yöneticisinin sadece kendi müşterisini görmesi, satış direktörünün ise bütün müşterileri görebilmesi. Tabloda ayrım yapacağımız AccountManagerId değerlerine göre AccManager1, AccManager2 ve SalesDirector adında üç kullanıcı oluşturalım. SQL Server 2016 login gerekmediği için WITHOUT LOGIN kullanabiliriz. Sonra da bu üç kullanıcıya Customers tablosu üzerinde SELECT yetkisini verelim (Resim-3).


Resim-3

Sırada RLS adında bir schema oluşturup bu schema altında @AccManager parametresi değerine göre
yetkilendirme sağlayacak fonksiyonu oluşturma işimiz var (Resim-4).


Resim-4

Şimdi gelelim işin asıl kısmına: AccountFilter adında bir security policy oluşturup bunu da Customers tablosu üzerinde STATE = ON diyerek aktif hale getirelim (Resim-5).

Resim-5

Bütün gerekli hazırlıklardan sonra artık oluşturduğumuz 3 kullanıcıyla birlikte konuyla alakasız başka bir kullanıcı yetkileriyle Customers tablosuna bakabiliriz (Resim-6). Her Account Manager kendi müşterisini gördüğü halde satış direktörü bütün tabloyu görebiliyor. Konudan habersiz testuser ise tabloda bir satır bile göremiyor.


Resim-6

SQL Server 2016 Security Policy’yi devre dışı bırakmak isterseniz T-SQL üzerinden Alter ederek ya da SSMS üzerinden Disable Security Policy ile sağlayabilirsiniz (Resim-7).


Resim-7

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

https://www.mshowto.org

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 1
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir