परिचय
आप TDE कॉलम-एन्क्रिप्शन कार्यक्षमता का उपयोग तालिकाओं के चयनित कॉलम को एन्क्रिप्ट करने के लिए कर सकते हैं। चूंकि एन्क्रिप्शन पारदर्शी है, आपको अपने एप्लिकेशन कोड को फिर से लिखने की आवश्यकता नहीं है और मौजूदा कोड का उपयोग कर सकते हैं। पारदर्शी शब्द का अर्थ यह भी है कि डेटाबेस सत्र बिना किसी समस्या के एन्क्रिप्टेड डेटा को पढ़ सकता है।
इस ब्लॉग में दिए गए निर्देशों को पढ़ने के बाद, आप EBS R12 वातावरण में TDE कॉलम-स्तरीय एन्क्रिप्शन सेट कर सकते हैं।
TDE के प्रभाव
आपके TDE एन्क्रिप्शन कार्यान्वयन का आपके एप्लिकेशन के निम्नलिखित पहलुओं पर प्रभाव पड़ सकता है:
- प्रदर्शन: TDE को लागू करने में कुछ सीमाएँ एडवांस सिक्योरिटी गाइड में प्रलेखित हैं। TDE लागू करने से पहले इसकी समीक्षा करनी चाहिए। आपको एन्क्रिप्ट करने के लिए कॉलम को सावधानी से चुनना चाहिए क्योंकि विकल्प डेटा मैनिपुलेशन लैंग्वेज (DML) और एन्क्रिप्टेड कॉलम का उपयोग करने वाली अन्य क्वेरीज़ के प्रदर्शन को प्रभावित करता है।
- पैचिंग: आपको उपलब्ध EBS पैचेस के बारे में पता होना चाहिए, विशेष रूप से वे पैच जो कॉलम पर परिवर्तन लागू करते हैं और TDE का उपयोग करके एन्क्रिप्ट किए जाते हैं। इसमें एन्क्रिप्टेड कॉलम पर इंडेक्स जोड़ने जैसे परिवर्तन शामिल हैं।
TDE की सीमाएँ
TDE कॉलम एन्क्रिप्शन Oracle LogMiner-आधारित तकनीकों, जैसे Streams या DataGuard, लॉजिकल-स्टैंडबाय मोड में समर्थित नहीं है। यदि आप इन तकनीकों का उपयोग कर रहे हैं, तो आप एन्क्रिप्टेड कॉलम को दोहरा नहीं सकते। हालांकि, TDE एन्क्रिप्शन तब समर्थित है जब आप DataGuard को फिजिकल-स्टैंडबाय मोड में उपयोग करते हैं। इस मामले में, मास्टर कुंजी वाला वॉलेट प्राथमिक सर्वर से फिजिकल स्टैंडबाय सर्वर पर कॉपी किया जाना चाहिए।
TDE लागू करने के चरण
- उन कॉलम और तालिकाओं की सूची प्राप्त करें जिन्हें एन्क्रिप्ट करने की आवश्यकता है।
- निम्नलिखित कमांड चलाकर आवश्यक स्थान पर एक वॉलेट फ़ोल्डर बनाएं:
$ mkdir TDEWallet sqlnet.oraयाsqlnet_ifile.oraमें निम्नलिखित पंक्ति के समान आवश्यक प्रविष्टि करें:[oratactp@odbprod1 tactprd_odbprod1]$ cat sqlnet_ifile.ora- निम्नलिखित कमांड का उपयोग करके
मास्टर कुंजीसेट करें, जो पिछले चरण में निर्दिष्ट वॉलेट स्थान पर एक वॉलेट फ़ाइल बनाता है:$ Sqlplus '/as sysdba' SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "*****"; System altered. - यदि पैच
7337863पहले से लागू नहीं है, तो इसे डाउनलोड और लागू करें। $FND_TOP/sqlसेaftdeval.sqlको AppsTier पर उन तालिकाओं या कॉलम के विरुद्ध निष्पादित करें जिन्हें एन्क्रिप्ट करने की आवश्यकता है, जैसा कि निम्न उदाहरण में दिखाया गया है:SQL> @aftdeval.sql IBY IBY_CREDITCARD CCNUMBER Eaftdeval.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 "****"; - निम्नलिखित कमांड का उपयोग करके वॉलेट के लिए ऑटो लॉगिन सेट कर सकते हैं:
$ orapki wallet create -wallet-auto_login
TDE कार्यान्वयन के लिए बाधाएँ
TDE कार्यान्वयन पर निम्नलिखित बाधाएँ लागू होती हैं:
- केवल कुछ डेटा प्रकार एन्क्रिप्ट किए जा सकते हैं।
- केवल 3932 बाइट्स से कम लंबाई के रूप में परिभाषित कॉलम एन्क्रिप्ट किए जा सकते हैं।
- यदि कॉलम विदेशी कुंजी का हिस्सा है या किसी अन्य डेटाबेस बाधा में उपयोग किया जाता है, तो इसे एन्क्रिप्ट नहीं किया जा सकता।
- यदि कॉलम पर फंक्शन-आधारित इंडेक्स है, तो इसे एन्क्रिप्ट नहीं किया जा सकता।
- यदि कोई कॉलम इंडेक्स्ड है और उस कॉलम के विरुद्ध रेंज स्कैन किए जाते हैं, तो कॉलम एन्क्रिप्ट होने के बाद इंडेक्स का उपयोग नहीं किया जाता है। इसके बजाय, फुल टेबल स्कैन किए जाते हैं।
- यदि कोई तालिका विभाजित है और पार्टीशन या सबपार्टीशन का आदान-प्रदान किया जाता है, तो सभी तालिका पार्टीशन को इसी तरह एन्क्रिप्ट किया जाना चाहिए।
बैक-आउट योजना
यदि कॉलम एन्क्रिप्शन की आवश्यकता नहीं है, तो बैक-आउट योजना के रूप में निम्नलिखित कमांड चलाएं:
SQL> ALTER TABLE IBY.IBY_CREDITCARD modify (CCNUMBER decrypt); << सभी कॉलम/तालिकाओं के लिए दोहराएं जो एन्क्रिप्ट किए गए थे। sqlnet_ifile.ora से ENCRYPTION_WALLET_LOCATION को टिप्पणी करें
पहले के कमांड निष्पादित करने के बाद, वातावरण को पुनरारंभ करें और एक पूर्ण पवित्रता परीक्षण करें।
निष्कर्ष
कॉलम स्तर पर TDE लागू करके, आप उपयोगकर्ताओं को कॉलम में संग्रहीत संवेदनशील डेटा, जैसे क्रेडिट कार्ड नंबर या मानव संसाधन डेटा, देखने से रोक सकते हैं। एन्क्रिप्शन के बाद आपको एप्लिकेशन कोड को फिर से लिखना नहीं पड़ता। मौजूदा कोड का उपयोग किया जा सकता है, और डेटाबेस सत्र बिना किसी परेशानी के एन्क्रिप्टेड डेटा को संभाल सकता है।