Merhaba Arkadaşlar,

Bu yazımda sizlere Oracle veritabanında Data Redaction özelliğini tanıtıp Verinin güvenliğini sağlayan bir metodu daha size sunmuş olacağım. Oracle Data Redaction ile bizim için kritik olan verileri yetkisiz ve görmesini istemediğimiz userlara farklı şekilde gösterebiliriz. Şunu unutmayın Data Redaction önceki yazımda bahsetmiş olduğum Transparent data Encryption özelliği gibi veriyi fiziksel diskte bir değişikliğe uğratMAZ sadece yetkisi kullanıcılar verileri görmek istediğinde veriler maskelenerek yada değiştirilerek yetkisiz kullanıcılara sunar.

TDE

Oracle Data Redaction işleminin Backup / Restore, Upgrade,Patch gibi işlemlere herhangi bir etkiside bulunmamaktadır. Verilerimiz Diskte ve talep edildiğinde Buffer cache de yine raw haliyle geliyor ancak yetkisiz ( Bu yazımda kullanmış olduğum örnekteki tek yetkili kullanıcı TEST kullanıcısı olacak bu user ın dışındaki userlar Data Redaction a maruz kalacaklardır. ) kullanıcılara tanımlanmış farklı kurallara göre veriler maskeleniyor kısaca değiştiriliyor. Oracle Data Redaction ın kullanım amacına göre 4 farklı metodu vardır bunlar aşağıdaki gibidir.

Data Redaction

 

Data Redaction2

 

Yukardaki 4 metodu verilen örneğiyle baktığımız zaman hangi metodun ne yaptığını örnekle çok iyi anlayabiliriz. Ben genelde daha güvenli olması için Random metodunu kullanmaktayım. Random metodunda redaction yapılacak kolondan Runtime da çekilen her sorguda farklı veri gelmektedir buda Verilerimizin güvenliği açısından çok önemlidir. Şimdi örnek olması açısından TEST şemam altındaki CREDIT_CARD_INF tablosunda bulunan Card number, Card expire month ve Card expire year kolonlarına Random olarak Data Redaction uygulayalım. Data Redaction işlemlerini Oracle ın DBMS_REDACT paketinde bulunan prosedürlerle yapabiliriz. Belirttiğim 3 kolona Data Redaction yapan PL/SQL kodum aşağıdaki gibidir.

 -- ADD_POLICY prosedürü ile Data Redaction işlemini tanımlıyoruz.
 BEGIN
 DBMS_REDACT.ADD_POLICY (
 OBJECT_SCHEMA => 'TEST',
 object_name => 'CREDIT_CARD_INF',
 policy_name => 'CC_Redaction',
 expression => 'SYS_CONTEXT(''USERENV'', ''SESSION_USER'') != ''TEST'' OR SYS_CONTEXT(''USERENV'', ''SESSION_USER'') IS NULL');  --  ( Bu örnekteki yetkili kullanıcı TEST kullanıcısı olacak bu user ın dışındaki userlar Data Redaction a maruz kalacaklardır. )
 END;

-- ALTER_POLICY prosedürü ile Kolonlara belirlediğimiz metod ile Redaction işleminin kuralını tanımlıyoruz 
 BEGIN
 DBMS_REDACT.ALTER_POLICY (
 OBJECT_SCHEMA => 'TEST',
 object_name => 'CREDIT_CARD_INF',
 policy_name => 'CC_Redaction',
 action => DBMS_REDACT.ADD_COLUMN,
 column_name => '"CARD_NUMBER"',
 function_type => DBMS_REDACT.RANDOM);
 END;

BEGIN
 DBMS_REDACT.ALTER_POLICY (
 OBJECT_SCHEMA => 'TEST',
 object_name => 'CREDIT_CARD_INF',
 policy_name => 'CC_Redaction',
 action => DBMS_REDACT.ADD_COLUMN,
 column_name => '"CARD_EXP_YEAR"',
 function_type => DBMS_REDACT.RANDOM);
 END;

BEGIN
 DBMS_REDACT.ALTER_POLICY (
 OBJECT_SCHEMA => 'TEST',
 object_name => 'CREDIT_CARD_INF',
 policy_name => 'CC_Redaction',
 action => DBMS_REDACT.ADD_COLUMN,
 column_name => '"CARD_EXP_MONTH"',
 function_type => DBMS_REDACT.RANDOM);
 END;

 

Bu PL/SQL kodunu başarılı bir şekilde çalıştırdıktan sonra ilgili tabloya select çektiğimizde aşağıdaki sonucu almaktayız.

SQL> SELECT * FROM TEST.CREDIT_CARD_INF;

redaction 1

Yukardaki sorguyu tekrar çalıştırdığımız zaman Card_number,card_exp_month ve card_exp_year değerlerinin random olarak sürekli değiştiğini görmekteyiz. İlk kolon olan ID kolonundan ilgili userlar için karşılaştırma yapabilirsiniz. Random olarak oluşturduğumuz Data Redaction özelliğini her kullanıcı çalıştırdığında verileri farklı olarak görmelerinden teyit edebilirsiniz.

redaction 2

 

 

Böylece bir yazımın daha sonuna gelmiş bulunmaktayım bir sonraki yazıda görüşmek dileğiyle Esen kalın…

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s