संगठनों को सामाजिक सुरक्षा संख्या, बैंक खाता और रूटिंग संख्या, और अन्य समान डेटा जैसे संवेदनशील डेटा को सुरक्षित करने में एक बड़ी चुनौती का सामना करना पड़ता है।
परिचय
विनियम और कानून संगठनों को अपने स्वयं के डेटा और ग्राहक जानकारी को गलत हाथों में पड़ने से बचाने की आवश्यकता होती है। डेटा रिडैक्शन, या डायनामिक डेटा मास्किंग (DDM), संवेदनशील डेटा तत्वों को अस्पष्ट या छिपाने की प्रक्रिया है।
Oracle® डेटा रिडैक्शन संवेदनशील जानकारी के जोखिम को कम करता है और एप्लिकेशन पृष्ठों में संवेदनशील डेटा का खुलासा कर सकने वाले एप्लिकेशन दोषों के शोषण को रोकने में मदद करता है।
डेटाबेस और एप्लिकेशन एडमिनिस्ट्रेटर, सुरक्षा एडमिनिस्ट्रेटर, और एप्लिकेशन मालिक जो सुरक्षा में सुधार करने और उन नियमों का पालन करने का एक आसान तरीका चाहते हैं जिनमें एप्लिकेशन द्वारा प्रदर्शित संवेदनशील डेटा को रिडैक्ट करने की आवश्यकता होती है, डेटा रिडैक्शन का उपयोग कर सकते हैं।
DDM
DDM मास्किंग नियमों के आधार पर यथार्थवादी, लेकिन स्क्रब्ड, डेटा के साथ उत्पादन डेटाबेस से टेस्ट गैर-उत्पादन डेटाबेस में कॉपी की गई संवेदनशील जानकारी को बदलने की प्रक्रिया है।
Oracle 12c (अब 11.2.0.8 में भी उपलब्ध) ने एक अंतर्निहित DDM क्षमता पेश की जिसे डेटा रिडैक्शन कहा जाता है।
डेटा रिडैक्शन
डेटा रिडैक्शन की निम्नलिखित विशेषताएं हैं:
Oracle Advanced Security का हिस्सा, जो एक अलग से लाइसेंस प्राप्त एंटरप्राइज एडिशन विकल्प है।
डेटाबेस एप्लिकेशन में प्रदर्शित संवेदनशील डेटा की रक्षा करता है।
एप्लिकेशन उपयोगकर्ताओं के लिए पारदर्शी क्योंकि यह मूल डेटा प्रकार को संरक्षित करता है, और वैकल्पिक रूप से, फॉर्मेटिंग को।
डेटाबेस के लिए अत्यधिक पारदर्शी क्योंकि डेटा बफर, कैश, और स्टोरेज-ओनली वातावरण में समान रहता है जब तक कि यह SQL क्वेरी परिणामों को कॉलर को वापस करने से ठीक पहले बदलता है।
रिडैक्शन के प्रकार
विभिन्न प्रकार के रिडैक्शन के कुछ उदाहरण निम्नलिखित हैं:
रिडैक्शन के लिए अपवाद
यदि आपके पास EXEMPT REDACTION POLICY सिस्टम विशेषाधिकार है, तो डेटा कभी रिडैक्ट नहीं होता। रिडैक्शन का उपयोग निम्नलिखित स्थितियों में भी कभी नहीं किया जाता:
SYSके रूप में कनेक्शन- डेटाबेस रेप्लिकेशन
- बैकअप और रिस्टोर
- एक्सपोर्ट और इम्पोर्ट
सेटअप
एक पॉलिसी को परिभाषित करने के लिए, आपको DBMS_REDACT पैकेज पर निष्पादन विशेषाधिकारों की आवश्यकता होती है, जिसका उपयोग पॉलिसी जोड़ने, बदलने, या हटाने के लिए किया जाता है।
टेस्टिंग के लिए, मैंने निम्न उदाहरण में दिखाए अनुसार एक टेबल बनाई और कुछ डेटा डाला:
CREATE TABLE CUSTOMERS (cust_id NUMBER NOT NULL ,name varchar2(20) ,credit_card NUMBER(16) ,exp_date DATE ,creditlimit NUMBER(6,2) ,emailadr varchar2(20) ) /
INSERT INTO CUSTOMERS VALUES (1982,'Vijay Garg' ,4263982640269299,'11-FEB-2022',22.50,'Vijay.Garg@gmail.com');
INSERT INTO CUSTOMERS VALUES (5428,'Ganesh Murthy',4917484589897107,'03-APR-2022',54.00,'Ganesh@oracle.com');
INSERT INTO CUSTOMERS VALUES (6734,'Himanshu Menon' ,4001919257537193,'23-FEB-2022',66.99,'Himanshu@yahoo.com');
INSERT INTO CUSTOMERS VALUES (3285,'Dishant Mathur' ,4007702835532454,'21-JUN-2022',233.00,'Dishant@aol.com');
INSERT INTO CUSTOMERS VALUES (4522,'Saurabh Agarwal' ,6362970000457013,'11-JUL-2022',777.00,'Saurabh@gmail.com');
INSERT INTO CUSTOMERS VALUES (1836,'Ankita Anthony' ,6062826786276634,'06-AUG-2022',235.00,'Ankita@net4india.com');
INSERT INTO CUSTOMERS VALUES (7494,'Varun Mehra' ,5425233430109903,'18-SEP-2022',33.00,'Varun@outlook.com');
INSERT INTO CUSTOMERS VALUES (6548,'Aaaksh Chopra' ,2222420000001113,'13-OCT-2022',97.00,'Aaaksh@aol.com');
Commit;
विभिन्न प्रकार के रिडैक्शन के लिए FUNCTION_TYPE सेटिंग
पॉलिसी परिभाषा के भीतर, आप FUNCTION_TYPE सेट करते हैं जो निम्न मानों का उपयोग करके परिभाषित करता है कि किस प्रकार का रिडैक्शन उपयोग किया जा रहा है:
DBMS_REDACT.NONEDBMS_REDACT.FULLDBMS_REDACT.PARTIALDBMS_REDACT.RANDOMDBMS_REDACT.REGEXP
डेटा प्रदर्शित करें
निम्नलिखित अनुभाग आपको प्रत्येक रिडैक्शन प्रकार के लिए डेटा प्रदर्शित करने का तरीका दिखाते हैं।
कोई रिडैक्शन नहीं
यदि कोई रिडैक्शन उपयोग नहीं किया जाता है, तो आप निम्न स्टेटमेंट के साथ डेटा प्रदर्शित करते हैं:
ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY';
COLUMN credit_card format 0000000000000000
COLUMN EMAILADR format a20
SELECT * FROM CUSTOMERS
पूर्ण रिडैक्शन
DBMS_REDACT पैकेज पर निष्पादन विशेषाधिकारों वाला उपयोगकर्ता पॉलिसी को परिभाषित करता है।
इस उदाहरण में, क्रेडिट कार्ड डेटा हमेशा रिडैक्ट होता है क्योंकि अभिव्यक्ति 1=1 हमेशा सत्य होती है।
पॉलिसी:
BEGIN
DBMS_REDACT.ADD_POLICY (
object_schema => 'SAGARG',
object_name => 'CUSTOMERS',
column_name => 'CREDIT_CARD',
policy_name => 'REDACT_POLICY_CARD',
function_type => DBMS_REDACT.FULL,
expression => '1=1'
);
END;
/
आंशिक रिडैक्शन
निम्न उदाहरण का उपयोग करके, आप क्रेडिट कार्ड नंबर के स्थान 1 से 12 को शून्य से मास्क कर सकते हैं:
BEGIN
DBMS_REDACT.ADD_POLICY (
object_schema => 'SAGARG',
object_name => 'CUSTOMERS',
column_name => 'CREDIT_CARD',
policy_name => 'REDACT_POLICY_CARD',
function_type => DBMS_REDACT.PARTIAL,
function_parameters => '0,1,12',
expression => '1=1'
);
END;
/
पिछली पॉलिसी को हटाने के लिए, निम्न कमांड चलाएं:
execute DBMS_REDACT.drop_policy ('SAGARG','CUSTOMERS','REDACT_POLICY_CARD');
आप अन्य कॉलम पर भी आंशिक रिडैक्शन कर सकते हैं, यदि आवश्यक हो।
यादृच्छिक रिडैक्शन
यादृच्छिक रिडैक्शन के साथ, जानकारी को निम्न उदाहरण में दिखाए अनुसार अन्य यादृच्छिक डेटा से बदल दिया जाता है:
BEGIN
DBMS_REDACT.ADD_POLICY (
object_schema => 'SAGARG',
object_name => 'CUSTOMERS',
column_name => 'CREDIT_CARD',
policy_name => 'REDACT_POLICY_CARD',
function_type => DBMS_REDACT.RANDOM,
expression => '1=1'
);
END;
/
नियमित अभिव्यक्तियों का उपयोग करना
नियमित अभिव्यक्तियों के साथ, आप पैटर्न मिलान के आधार पर डेटा को रिडैक्ट कर सकते हैं। पूर्वनिर्धारित पैटर्न ईमेल पते और IP पते जैसी कई स्थितियों को कवर करते हैं। निम्न उदाहरण ईमेल पते की शुरुआत को छुपाता है:
BEGIN
DBMS_REDACT.ADD_POLICY (
object_schema => 'SAGARG',
object_name => 'CUSTOMERS',
column_name => 'EMAILADR',
policy_name => 'REDACT_POLICY_CARD',
function_type => DBMS_REDACT.REGEXP,
regexp_pattern => DBMS_REDACT.RE_PATTERN_EMAIL_ADDRESS,
regexp_replace_string => DBMS_REDACT.RE_REDACT_EMAIL_NAME,
regexp_position => DBMS_REDACT.RE_BEGINNING,
regexp_occurrence => DBMS_REDACT.RE_ALL,
expression => '1=1'
);
END;
/
अभिव्यक्ति के लिए पैरामीटर मान हमेशा '1=1' होता है, इसलिए डेटा हमेशा रिडैक्ट होता है।
किसी विशिष्ट उपयोगकर्ता के लिए
किसी विशिष्ट उपयोगकर्ता के लिए डेटा रिडैक्ट करने के लिए, आप प्रोफाइल में निम्न अभिव्यक्ति जोड़ सकते हैं:
'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SAGARG'''
उदाहरण के लिए:
BEGIN
DBMS_REDACT.ADD_POLICY(
object_schema => 'SAGARG',
object_name => 'CUSTOMERS',
column_name => 'CREDIT_CARD',
policy_name => 'REDACT_POLICY_CARD',
function_type => DBMS_REDACT.RANDOM,
expression => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SAGARG'''
);
END;
/
निष्कर्ष
जब आप Oracle डेटा रिडैक्शन का उपयोग करके प्रदर्शित एप्लिकेशन डेटा को रिडैक्ट करते हैं, तो आप उन एप्लिकेशन उपयोगकर्ताओं को संवेदनशील डेटा उजागर होने के जोखिम को सीमित करते हैं जो इच्छित दर्शक नहीं हैं।
इसके अलावा, Oracle डेटा रिडैक्शन डेटाबेस उपयोगकर्ताओं को आकस्मिक प्रकटीकरण को रोकने में मदद करता है जो संवेदनशील जानकारी देखना नहीं चाहते फिर भी डेटाबेस के साथ काम करते समय इसके संपर्क में आ सकते हैं।
टिप्पणी करने या प्रश्न पूछने के लिए फीडबैक टैब का उपयोग करें।
विशेषज्ञ प्रशासन, प्रबंधन और कॉन्फ़िगरेशन के साथ अपने वातावरण को अनुकूलित करें
Rackspace के एप्लिकेशन सर्विसेज (RAS) विशेषज्ञ अनुप्रयोगों के एक विस्तृत पोर्टफोलियो में निम्नलिखित पेशेवर और प्रबंधित सेवाएं प्रदान करते हैं:
- ईकॉमर्स और डिजिटल एक्सपीरियंस प्लेटफॉर्म
- एंटरप्राइज रिसोर्स प्लानिंग (ERP)
- बिजनेस इंटेलिजेंस
- सेल्सफोर्स कस्टमर रिलेशनशिप मैनेजमेंट (CRM)
- डेटाबेस
- ईमेल होस्टिंग और उत्पादकता
हम प्रदान करते हैं:
- निष्पक्ष विशेषज्ञता: हम आपकी आधुनिकीकरण यात्रा को सरल बनाते हैं और मार्गदर्शन करते हैं, उन क्षमताओं पर ध्यान केंद्रित करते हैं जो तत्काल मूल्य प्रदान करती हैं।
- फैनैटिकल एक्सपीरियंस™: हम समर्पित तकनीकी सहायता के साथ प्रोसेस फर्स्ट, टेक्नोलॉजी सेकंड® दृष्टिकोण को जोड़कर व्यापक समाधान प्रदान करते हैं।
- अद्वितीय पोर्टफोलियो: हम आपको सही क्लाउड पर सही तकनीक चुनने और तैनात करने में मदद करने के लिए व्यापक क्लाउड अनुभव लागू करते हैं।
- एजाइल डिलीवरी: हम आपकी यात्रा में जहां आप हैं वहां मिलते हैं और अपनी सफलता को आपके साथ संरेखित करते हैं।
अभी चैट करें शुरू करने के लिए।