0

SQL 2016 Dynamic Data Masking Nedir? Microsoft SQL 2016 ile birlikte Data maskeleme alanında bir yenilik ile karşımıza çıktı. Bildiğiniz ve hepinizin fark ettiği gibi bazı Dataları son kullanıcıya açık bir şekilde göstermek güvenlik açığıdır. Hepiniz bankalarda havale yaparken ya da alışverişlerinizde kredi kartınızın ilk ve son 4 rakamını açık diğer rakamların ise * ya da x işareti ile maskelendiğini fark etmişsinizdir. Ya da ad ve soyadınızın ilk iki harfi açık diğer harflerin ise gizli olduğunu görmüşsünüzdür. Bu yazılım ile yapılan bir maskeleme işlemleri artık SQL Server 2016 ile çok basit bir şekilde yapılabilmekte. Ve yetkisi olmayan kullanıcılar bu Data’yı herhangi bir Select sorgusunda tanımladığınız algoritmaya göre maskelenmiş bir şekilde görebilmekte.


Resim-1

Şimdi bu yöntemi biraz daha detaylı olarak irdelemeye başlayalım.

SQL 2016 Dynamic Data Masking nasıl yapılır?

Aslında yapılması gereken işlem basit. Bunun için size bir kod parçacığı üzerinden örnekleme ile anlatacağım işin prosedürünü.

CREATE TABLE Membership
(MemberID int IDENTITY PRIMARY KEY,

FirstName varchar(100) MASKED WITH (FUNCTION = ‘partial(1,”XXXXXXX”,0)’) NULL,

LastName varchar(100) NOT NULL,

Phone# varchar(12) MASKED WITH (FUNCTION = ‘default()’) NULL,

Email varchar(100) MASKED WITH (FUNCTION = ’email()’) NULL);

Öncelikle yukarıdaki SQL kodu ile bir tablo yaratalım. Bu tablodaki Firstname kolonunu maskeleyelim ve amacımız ilk harfi göstermek diğer harfleri ise maskelemek olsun. Telefonda Default E-mail’de ise özel olarak tanımlanmış email fonksiyonu ile maskeleme tanımlayalım. Sonrasında ise 3 adet satır ekleyelim.

INSERT Membership (FirstName, LastName, Phone#, Email) VALUES

(‘Roberto’, ‘Tamburello’, ‘555.123.4567’,‘RTamburello@contoso.com’),

(‘Janice’, ‘Galvin’, ‘555.123.4568’, ‘JGalvin@contoso.com.co’),

(‘Zheng’, ‘Mu’, ‘555.123.4569’, ‘ZMu@contoso.net’);

Sysadmin rolündeki bir kullanıcı ile sorgu çekerseniz eğer hiçbir değişiklik farketmeyeceksiniz.

SELECT * FROM Membership;


Resim-2

Şimdi maskeleme yaptığımız alanı test etmek için bir kullanıcı yaratalım.

CREATE USER TestUser WITHOUT LOGIN;

GRANT SELECT ON Membership TO TestUser;

EXECUTE AS USER = ‘TestUser’;

SELECT * FROM Membership;

REVERT;

Yukarıdaki kod parçacığı ile de bir test kullanıcısı oluşturup bu kullanıcıya sadece Select yetkisi veriyoruz. Tekrar Select sorgusunu çalıştırdığımızda ise sonuç;


Resim-3

İsim alanında sadece kişinin ilk harfini telefon ve mailde ise tanımladığımız fonksiyonlara göre gelen değerleri görmekteyiz.

Ek olarak mevcut bir tabloda maskeleme eklemek veya silmek için de aşağıdaki komutu kullanabilirsiniz.

ALTER TABLE Membership

ALTER COLUMN LastName ADD MASKED WITH (FUNCTION = ‘partial(2,”XXX”,0)’);

ALTER TABLE Membership

ALTER COLUMN LastName DROP MASKED;

Kullanıcı yetkilendirmesi için ise aşağıdaki kodu kullanabilirsiniz.

GRANT UNMASK TO TestUser;

EXECUTE AS USER = ‘TestUser’;

SELECT * FROM Membership;

REVERT;

Ayrıca maskelenen veriyi hangi kullanıcını görüp göremeyeceği bilgisini ayarlamak için ise SQL kullanıcının o veritabanı için oluşan yetkilendirme alanlarını kullanabilirsiniz. Bunun için obje olarak Veritabanı’nı seçmelisiniz dolayısı ile o Veritabanı için Unmask yetkisini Grant veya Deny olarak değiştirebilirsiniz.


Resim-4

Başka bir makalede buluşmak dileğiyle.

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

Referanslar

www.mshowto.org

Dynamic Data Masking

 

TAGs : SQL 2016 Dynamic Data Masking nedir, SQL 2016 Dynamic Data Masking kurulumu, SQL 2016 Dynamic Data Masking ayarlari, SQL 2016 Dynamic Data Masking settings, SQL 2016 Dynamic Data Masking, sql 2016 Data maskeleme, Data maskeleme nasil yapilir, Data maskeleme ayarlari, sql Data maskeleme,

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

Soma doğumludur. Ankara üniversitesi. Fen Fakültesi Matematik Ana Bilim Dalı mezunudur. Bilişim sektöründe çeşitli firmalarda Veritabanı Uzmanı, Sistem Yöneticisi ve Yazılımcı olarak çalışmıştır. Şu anda Netaş şirketinde kurumsal danışman olarak görev yapmaktadır. MSSQL ürün ailesi ve Azure teknolojileri ile ilgilenmektedir.

Yazarın Profili

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