यह ब्लॉग Oracle® E-Business Suite® (EBS) R12 वातावरण में ट्रांसपेरेंट डेटा एन्क्रिप्शन (TDE) कॉलम-लेवल एन्क्रिप्शन की स्थापना पर चर्चा करता है। आप उपयोगकर्ता की आवश्यकता के आधार पर एकल-स्तंभ या एकाधिक-स्तंभ तालिकाओं पर स्तंभ-स्तरीय एन्क्रिप्शन सेट कर सकते हैं।
परिचय
आप टेबल के चयनित कॉलम को एन्क्रिप्ट करने के लिए टीडीई कॉलम-एन्क्रिप्शन कार्यक्षमता का उपयोग कर सकते हैं। चूंकि एन्क्रिप्शन पारदर्शी है, इसलिए आपको अपने एप्लिकेशन कोड को फिर से लिखने की आवश्यकता नहीं है और आप मौजूदा कोड का उपयोग कर सकते हैं। शब्द पारदर्शी इसका मतलब यह भी है कि डेटाबेस सत्र बिना किसी समस्या के एन्क्रिप्टेड डेटा को पढ़ सकता है।
इस ब्लॉग में दिए गए निर्देशों को पढ़ने के बाद, आप EBS R12 परिवेश में TDE कॉलम-लेवलएन्क्रिप्शन सेटअप कर सकते हैं।
TDE के प्रभाव
आपके टीडीई एन्क्रिप्शन कार्यान्वयन का आपके अनुप्रयोगों के निम्नलिखित पहलुओं पर प्रभाव पड़ सकता है:
-
प्रदर्शन:टीडीई को लागू करने में कुछ सीमाएं एडवांस सिक्योरिटी गाइड में प्रलेखित हैं। टीडीई लागू करने से पहले आपको इसकी समीक्षा करनी चाहिए। आपको सावधानी से एन्क्रिप्ट करने के लिए कॉलम भी चुनना चाहिए क्योंकि चुनाव डेटा मैनिपुलेशन लैंग्वेज (डीएमएल) के प्रदर्शन और एन्क्रिप्टेड कॉलम का उपयोग करने वाले अन्य प्रश्नों को प्रभावित करता है।
-
पैचिंग:आपको उपलब्ध ईबीएस पैच के बारे में पता होना चाहिए, विशेष रूप से पैच जो कॉलम में परिवर्तन लागू करते हैं और टीडीई का उपयोग करके एन्क्रिप्ट किए जाते हैं। इसमें एन्क्रिप्टेड कॉलम पर इंडेक्स को जोड़ने जैसे बदलाव शामिल हैं।
TDE की सीमा
TDE कॉलम एन्क्रिप्शन, तार्किक-स्टैंडबाय मोड में Oracle LogMiner-आधारित तकनीकों, जैसे स्ट्रीम्स या डेटागार्ड के साथ समर्थित नहीं है। यदि आप इन तकनीकों का उपयोग कर रहे हैं, तो आप एन्क्रिप्टेड कॉलम को दोहरा नहीं सकते हैं। हालाँकि, जब आप भौतिक-स्टैंडबाय मोड में डेटागार्ड का उपयोग करते हैं, तो TDE एन्क्रिप्शन समर्थित होता है। इस मामले में, मास्टर कुंजी वाले वॉलेट को प्राथमिक सर्वर से एफिजिकल स्टैंडबाय सर्वर में कॉपी किया जाना चाहिए, जैसा कि निम्न छवि में दिखाया गया है:
छवि स्रोत:https://docs.oracle.com/cd/E11882_01/network.112/e40393/ asotrans.htm#ASOAG9567
TDE लागू करने के चरण
TDE को लागू करने के लिए निम्न चरणों का पालन करें:
-
उन स्तंभों और तालिकाओं की सूची प्राप्त करें जिन्हें एन्क्रिप्ट करने की आवश्यकता है।
-
निम्न आदेश चलाकर आवश्यक स्थान पर एक वॉलेट फ़ोल्डर बनाएं:
$ mkdir TDEWallet
-
sqlnet.ora
में आवश्यक प्रविष्टि करें याsqlnet_ifile.ora
निम्न पंक्ति के समान:[oratactp@odbprod1 tactprd_odbprod1]$ cat sqlnet_ifile.ora
-
Master Key
सेट करें निम्नलिखित कमांड का उपयोग करके, जो पिछले चरण में निर्दिष्ट वॉलेट स्थान पर एक वॉलेटफाइल बनाते हैं:$ Sqlplus '/as sysdba' SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "*****"; System altered.
-
पैच डाउनलोड करें और लागू करें
7337863
अगर यह पहले से लागू नहीं है। -
निष्पादित करें
aftdeval.sql
AppTier पर$FND_TOP/sql
. से तालिका या स्तंभों के विरुद्ध जिन्हें एन्क्रिप्ट करने की आवश्यकता है, जैसा कि निम्न उदाहरण में दिखाया गया है:SQL> @aftdeval.sql IBY IBY_CREDITCARD CCNUMBER E
-
aftdeval.sql
. द्वारा जेनरेट किए गए सभी एन्क्रिप्शन कमांड निष्पादित करें । -
निम्न आदेश का उपयोग करके एन्क्रिप्ट किए गए स्तंभों को सत्यापित करें:
SQL> SELECT * FROM DBA_ENCRYPTED_COLUMNS; OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_ALG SAL INTEGRITY_AL ---------- ------------------------- -------------------- -------------------- --- ------------ IBY IBY_CREDITCARD CCNUMBER AES 192 bits key NO SHA-1
-
आप निम्न आदेशों का उपयोग करके वॉलेट को खोल या बंद कर सकते हैं:
SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "****"; SQL> SELECT * FROM v$encryption_wallet; SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "****";
-
आप ऑटो लॉगिन set सेट कर सकते हैं निम्नलिखित कमांड का उपयोग करके वॉलेट के लिए:
$ orapki wallet create -wallet <wallet_location> -auto_login
टीडीई कार्यान्वयन के लिए बाधाएं
निम्नलिखित बाधाएं टीडीई कार्यान्वयन पर लागू होती हैं:
-
केवल कुछ निश्चित डेटा प्रकारों को एन्क्रिप्ट किया जा सकता है।
-
केवल 3932 बाइट से कम लंबाई के रूप में परिभाषित स्तंभों को एन्क्रिप्ट किया जा सकता है।
-
यदि कॉलम किसी विदेशी कुंजी का हिस्सा है या किसी अन्य डेटाबेस बाधा में उपयोग किया जाता है, तो इसे एन्क्रिप्ट नहीं किया जा सकता है।
-
यदि कॉलम पर कोई फ़ंक्शन-आधारित अनुक्रमणिका है, तो उसे एन्क्रिप्ट नहीं किया जा सकता है।
-
यदि किसी स्तंभ को अनुक्रमित किया जाता है और उस स्तंभ के विरुद्ध श्रेणी स्कैन किया जाता है, तो स्तंभ के एन्क्रिप्ट होने के बाद अनुक्रमणिका का उपयोग नहीं किया जाता है। इसके बजाय, पूर्ण टेबलस्कैन किए जाते हैं।
-
यदि किसी तालिका को विभाजित किया जाता है और विभाजन या उपविभाजनों का आदान-प्रदान किया जाता है, तो सभी तालिका विभाजनों को समान रूप से एन्क्रिप्ट किया जाना चाहिए। निम्न तालिकाएं वर्तमान में इस मानदंड के अनुरूप हैं:
-
EGO_MTL_SY_ITEMS_EXT_B
-
EGO_MTL_SY_ITEMS_EXT_TL
-
WF_LOCAL_ROLES
-
WF_LOCAL_ROLES_STAGE
-
WF_USER_ROLE_ASSIGNMENTS
-
WF_UR_ASSIGNMENTS_STAGE
-
WF_LOCAL_USER_ROLES
-
WF_LOCAL_USER_ROLES_STAGE
-
WF_LOCAL_ROLES_TL
-
WF_LOCAL_ROLES_TL_STAGE
बैक आउट प्लान
यदि कॉलम एन्क्रिप्शन की आवश्यकता नहीं है, तो बैक आउट प्लान के रूप में निम्नलिखित कमांड चलाएँ:
SQL> ALTER TABLE IBY.IBY_CREDITCARD modify (CCNUMBER decrypt); << repeat this for all columns/tables which were encrypted.
Comment ENCRYPTION_WALLET_LOCATION from sqlnet_ifile.ora
पूर्ववर्ती आदेशों को क्रियान्वित करने के बाद, पर्यावरण को पुनरारंभ करें और एक पूर्ण विवेक परीक्षण करें।
निष्कर्ष
कॉलम स्तर पर टीडीई को लागू करके, आप उपयोगकर्ताओं को कॉलम में संग्रहीत संवेदनशील डेटा, जैसे क्रेडिट कार्ड नंबर या मानव संसाधन डेटा को देखने से रोक सकते हैं। आपको एन्क्रिप्शन के बाद एप्लिकेशन कोड को फिर से लिखने की आवश्यकता नहीं है। मौजूदा कोड का उपयोग किया जा सकता है, और डेटाबेस सत्र बिना किसी परेशानी के एन्क्रिप्टेड डेटा को संभाल सकता है।
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें।
हमारी डेटाबेस सेवाओं के बारे में अधिक जानें।