DATA MASKING ile verileri güvenle taşımak

Posted by | Aralık 02, 2013 | Database, Security | No Comments

Şimdi size bir ihtiyaçtan ve çözümden bahsedeceğim. Diyelim ki işletmeniz COBIT
standartları çerçevesinde çalışan bir yer. Bir çalışma için (örneğin bir POC )  verilerinizin de dışarıya taşınması gerekli. COBIT standartları gereği bu verilerinizi kurum dışına açık bir şekildeçıkaramazsınız.
Bu çalışma verilerini oluşturmak için Oracle’ın size sunduğu çözüm Data Masking Pack.
Özellikle Foreign Key ilişkilerini  koruyarak verileri maskeliyor olması tablolar arası  ilişkilerin korunması ve yapılacak çalışmanın  güvenli  bir şekilde  ve  gerçek  verilerle  yürütülmesini sağlıyor.
Daha önceki sürümlerde paket olarak sunulan bu özellik 12c versiyonu ile birlikte Data Redaction adı altında veritabanının bir opsiyonuolarak gelmekte. Öncelikle 11g veritabanı  üzerinde  konuyu bir örnekle görelim. 12c Data Redaction opsiyonunu ise bir başka yazımızda ele alacağız.

Çok basit bir örnekle konuyu açıklamaya çalışacağım.

Öncelikle bir kullanıcı yaratalım,yetkilendirelim ve hr.employees tablosunun bir kopyasını
bu kullanıcı için oluşturalım.

create user testmask identified by testmask;
grant connect,resource to testmask;
create table testmask.employees as select * from hr.employees;

Schema sekmesinde Data Masking bölümünde Definitions’a tıklayalım.

image002

Create butonuna tıklayalım.

image003

Name kısmına bir isim verelim ve Add butonuna tıklayalım.

image004

Schema : testmask
Table Name : employees seçelim. Daha sonra SALARY kolonunu seçelim ve “Define Format and Add” butonuna tıklayalım.

image005

Format Enrty bölümünde Shuffle seçin ve “Add Condition” butonuna tıklayın.
Not: Format Entry  bölümünde  alanın  özelliklerini  de gözönünde  bulundurarak  farklı  formatlarda maskeleme yapabilirsiniz. Daha detaylıbir örneğe buradan erişebilirsiniz.

image006

Sample bölümünde “Refresh” butonuna tıklayarak örnek veri oluşturun.

image007

Ok butonuna tıklayarak tanımlamayı kaydedin.

image008

Generate Script” butonuna tıklayarak oluşturulacak scripti hazırlayın.

image009

image010

Schedule Job” butonuna tıklayarak yaptığımız çalışmanın uygulanacağı zaman planlamasını yapın.

image011

Start bölümünden “Immediately” seçin ve “Submit” butonuna tıklayarak çalıştırın.

image012

View Job Details” linkinden süreci takip edebilirsiniz.

image013

F5 tuşu ile sürecin adımları boyunca Refresh ederek süreci izleyebilirsiniz. Status : Succeeded olduğunda işlem tamamlanmış demektir.

image014

Bu noktada çalışmamız tamamlanmış durumdadır. Şimdi önümüze iki tane browser açalım ve
EM’e girelim. HR.Employees veTESTMASK.Employees tabloları arasındaki farklılıkları izleyelim.

Çalışmamızda HR.Employees tablosundaki SALARY alanı üzerinde Shuffle seçeneği ile mevcut verilerin
karışık olarak TESTMASK.Employees tablosuna yazılmasını sağlamıştık. Diğer tüm verileri ise aynı tutmuştuk.

Schema sekmesinde Tables bölümüne girelim.

image015

Schema : HR
Object Name : EMPLOYEES yazalım, Actions bölümünde View Data seçelim ve yanındaki “Go” butonuna tıklayalım.

image016

Gelen verileri daha rahat izleyebilmek adına email kolonuna tıklayarak bu alana göre verileri sıralayalım.

image017

İkinci bir browser açalım ve bir öncekinde olduğu gibi Schema sekmesi Tables kısmından;

Schema : TESTMASK
Object Name : Employees verilerini girelim. Actions kısmında View Data seçelim ve yanındaki “Go” butonuna tıklayalım.

image018

Aynı şekilde email kolonuna göre sıralayalım.

image019

Görüleceği üzere HR.Employees tablosundaki orijinal veride ilk satırdaki SALARY değeri 6200 iken
verilerini karıştırarak oluşturduğumuzikinci tablomuz olan TESTMASK. Employees de SALARY değeri 24000 dir.

Çalışma verilerini temizlemek :

SQLPLUS’a SYS ile bağlanarak aşağıdaki komutu çalıştırarak oluşturduğumuz kullanıcı ve nesnelerini temizleyebilirsiniz.

Drop user testmask cascade ;

Leave a comment

Your email address will not be published. Required fields are marked.