Oracle Data Redaction -1

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…

 

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi İhtiyacınız var mehmet.deveci@gridgroup.com.tr adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

Leave a Reply

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