Row Level Security

Serdar BAYRAK

Updated on:

Row Level Security(RLS) bize, bir database altında bulunan tablodaki verilerin row bazlı erişim kontrolünü sağlar.

Örnek verecek olursak; Bir işletme düşünün bu işletmenin Sahibi(Boss), Satış Müdürü(Manager), Üretim Mühendisi(Engineer) ve Güvenlik Görevlisi(Bodyguard) olsun.

Bu işletmede araçlar için ürünlerin üretildiğini ve satıldığını düşünelim.

İşletme Sahibi Üretilen ve Satılan tüm ürünleri görebilsin.

Satış Müdürü sadece satılan tüm ürünleri görebilsin.

Üretim Mühendis sadece üretilen ürünleri görebilsin.

Ve son olarak Güvenlik Görevlisinin uygulamaya erişimi olsun fakat bu konu hakkında hiç bir bilgiye erişemesin.

 

Yukarıdaki senaryomuza göre adım adım bilgilerimizi tamamlayalım.

 

Senaryomuzda okumasını istediğimiz ve istemediğimiz kişileri oluşturup ilgili tabloya okuma yetkilerini veriyoruz.

Yeni bir table value function oluşturuyoruz. Bunu oluşturmadaki amacımız RLS yapacağımız verilerde hangi kolon altındaki değerlere göre bunu yapacağız.

 

Filtrelenecek kolona güvenlik policy ekliyoruz. Policy durumu kesinlikle ON olmalı yoksa RLS çalışmaz.

 

Tüm bu işlemlerden sonra tek tek oluşturduğumuz kullanıcılar için sorgu sonuçlarını aşağıda inceleyebilirsiniz.

Yorum yapın