Tag Archives: sql server

SQL Server Dynamic Data Masking – Veri Maskeleme

SQL veri tabanımızda hassas veriler içeren tablolarda veri maskelemesi uygulayabiliriz.

DDM, bize tablodaki verilerin tamamının ya da bir kısmının yetkisiz kullanıcılara gözükmemesini sağlar.

Örneğin kredi kartı bilgilerinin sadece son hanesinin gözükmesi ya da TC kimlik numarası gibi hassas bilgilerin sadece baştaki ve sondaki belirli karakterlerin gözükmesi gibi.  

Veri maskelemede yapıla bilen bazı maskeleme çeşitleri:

  • Verinin tamamının gizlenmesi
  • Satırda yer alan verinin belirli bir kısmının gizlenmesi. (İlk karakterler, son karakterler ya da ortadaki belirli karakterler).
  • Email asresin gizlenmesi
  • Verilerin random sayılar ile yer değiştirmesi.

Öncelikle veri maskelemesi yapacağımız bir tablo oluşturmamız gerekiyor. Tablomuz oluşturulurken kolonları da veri maskelemeye uygun halde oluşturmamız gerekiyor.

Bu örnekte ad kolonunda veriler açıktır, soyadı kolonu tamamen gizlidir (default), email adresi SQL in “email” parametresi ile maskelenir ve ayarlar varsayılan olarak gelir, sicil numarası 3000 ile 5000 arasındaki rastgele sayılan ile değiştirilir, TC kimlik numarasının ilk 3 hanesi ve son 1 hanesi gözükürken ortadaki sayılan gizlenir ve son olarak kredi kartının sadece son 4 rakamı gözükür.

Veri girişi yapıyorum.

Veriler yetkili kullanıcılara açık şekilde gözükmektedir.

Sadece veri çekmesi için izine sahip bir kullanıcı oluşturup tabloma atıyorum.

Bu kullanıcı ile verileri çektiğimizde verilerin maskelenmiş olduğunu görürüz.

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.

SQL Server Sorguları İle Active Directory den Veri Çekme

Microsoft SQL Server’ın Linked Server özelliği ile Active Directory yapınıza bağlanabilir ve group, bilgisayar, kullanıcı gibi nesnelerin bilgilerini sorgular ile çekebilirsiniz.

Linked Server olarak active directory yapınıza bağlanmak için aşağıdaki sorguyu çalıştırın.

 

Oracle Veri Tabanından MS SQL Server a Veri Aktarımı

 

Oracle veri tabanında yer alan verilerinizi MS SQL Server a aktarmak istiyorsanız eğer bunu birçok yöntem ve araç ile yapabilirsiniz. Bu araçlardan biride MS SQL Server Migration Assistant dır. Aracın nasıl kullanıldığını aşağıdaki makale de yer almaktadır.

https://ortacdemirel.com/oracle-veritabanindan-ms-sql-servera-gecis-migration/

Bu araç dışında SQL Server ile birlikte gelen “Import and Export Data” aracını da kullanabilirsiniz.

İki araç arasındaki temel fark migration assistant da ek bir yazılım yüklemenize gerek yoktur. Import and Export data aracında ise Oracle client yazılımı yüklenmelidir.

Bu makalemde Import ve Export Data aracının kullanımına değineceğim.

İlk olarak oracle ın sayfasından “Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64)” yazılımını çekiyorum. Ben 11g den veri aktaracağım için bu sürümü kullanıyorum. Yaklaşık 600 MB lık büyük bir dosyadır. İndirmek için üye olmanız gerekmektedir. Ücretsiz üye olaibilirsiniz.

Yazılımı MS SQL Server yüklü olan makineye kurmamız gerekmektedir çünkü veri aktarma aracı bu sunucumuzda yer almaktadır.

Setup.exe ile kurulumu başlatıyoruz.

 

 

SQL Server’da Yetkisiz Kullanıcılardan Tablo İsimlerini Gizlemek

SQL Server’da yetkisi olmayan kullanıcılardan veri tabanı isimlerini gizlediğimiz gibi tablo isimlerini de gizleyebiliriz. Böylelikle sql server a oturum açan kullanıcılar sadece yetkili oldukları tabloları görebilirler.

Tablo isimlerini gizlemek için öncelikle kullanıcımızı veri tabanımıza ekliyoruz ve db_owner dışında okuma yazma gibi yetkiler veriyoruz.

 

Ardından görmesini istemediğimiz tablonun üzerine sağ tıklayarak özelliklerine giriyoruz.

 

“Permissions” bölümünden kullanıcımızı seçip “View Definition” iznine “Deny” yani yasaklamak yetkisi veriyoruz.

 

Bu aşamadan sonra sql server a oturum açan kullanıcımız sadece yetkili olduğu tabloları görecektir.