কম্পিউটার টিউটোরিয়াল

Oracle EBS R12-কে ট্রান্সপারেন্ট ডেটা এনক্রিপশন (TDE) দিয়ে সুরক্ষিত করুন

এই ব্লগটি Oracle® E-Business Suite® (EBS) R12 পরিবেশে ট্রান্সপারেন্ট ডেটা এনক্রিপশন (TDE) কলাম-স্তরের এনক্রিপশন সেটআপ করার কথা আলোচনা করে। ব্যবহারকারীর প্রয়োজনীয়তার উপর নির্ভর করে, আপনি একক-কলাম বা একাধিক-কলাম টেবিলে কলাম-স্তরের এনক্রিপশন সেট আপ করতে পারেন।

ভূমিকা

আপনি টেবিলের নির্বাচিত কলামগুলি এনক্রিপ্ট করতে TDE কলাম-এনক্রিপশন কার্যকারিতা ব্যবহার করতে পারেন। যেহেতু এনক্রিপশন ট্রান্সপারেন্ট, আপনার অ্যাপ্লিকেশন কোড পুনরায় লিখতে হবে না এবং আপনি বিদ্যমান কোডটি ব্যবহার করতে পারেন। ট্রান্সপারেন্ট শব্দটির অর্থ হল ডেটাবেস সেশন কোনো সমস্যা ছাড়াই এনক্রিপ্ট করা ডেটা পড়তে পারে।

এই ব্লগের নির্দেশাবলী অনুসরণ করার পর, আপনি একটি EBS R12 পরিবেশে TDE কলাম-স্তরের এনক্রিপশন সেট আপ করতে পারবেন।

TDE-এর প্রভাব

আপনার TDE এনক্রিপশন বাস্তবায়ন আপনার অ্যাপ্লিকেশনগুলির নিম্নলিখিত দিকগুলিকে প্রভাবিত করতে পারে:

  • পারফরম্যান্স: TDE বাস্তবায়নে কিছু সীমাবদ্ধতা অ্যাডভান্সড সিকিউরিটি গাইডে নথিভুক্ত করা আছে। TDE বাস্তবায়নের আগে এইটি পর্যালোচনা করা উচিত। এনক্রিপ্ট করার জন্য কলামগুলি সতর্কতার সাথে বেছে নেওয়া উচিত কারণ এটি ডেটা ম্যানিপুলেশন ল্যাঙ্গুয়েজ (DML) এবং এনক্রিপ্ট করা কলামগুলি ব্যবহার करने वाले অন্যান্য কোয়েরিগুলির পারফরম্যান্সকে প্রভাবিত করে।

  • প্যাচিং: আপনাকে উপলব্ধ EBS প্যাচগুলির সম্পর্কে জানতে হবে, বিশেষ করে যেসব প্যাচ কলামগুলিতে পরিবর্তন করে এবং TDE ব্যবহার করে এনক্রিপ্ট করা হয়েছে। এতে ইনডেক্স যোগ করা പോইন্টের মতো পরিবর্তন অন্তর্ভুক্ত।

TDE-এর সীমাবদ্ধতা

Oracle LogMiner-ভিত্তিক প্রযুক্তিগুলির সাথে TDE কলাম এনক্রিপশন সমর্থিত নয়, যেমন Streams বা DataGuard, লজিক্যাল-স্ট্যান্ডবাই মোডে। আপনি যদি এই প্রযুক্তিগুলি ব্যবহার করেন, তবে আপনি এনক্রিপ্ট করা কলামগুলি প্রতিলিপি করতে পারবেন না। যাইহোক, DataGuard-কে ফিজিক্যাল-স্ট্যান্ডবাই মোডে ব্যবহার করার সময় TDE এনক্রিপশন সমর্থিত। এই ক্ষেত্রে, মাস্টার কী ধারণকারী একটি ওয়ালেট প্রাইমারি সার্ভার থেকে একটি ফিজিক্যাল স্ট্যান্ডবাই সার্ভারে কপি করতে হবে, নিচের ছবিতে দেখানো হয়েছে:

Oracle EBS R12-কে ট্রান্সপারেন্ট ডেটা এনক্রিপশন (TDE) দিয়ে সুরক্ষিত করুন ছবির উৎস: https://docs.oracle.com/cd/E11882_01/network.112/e40393/asotrans.htm#ASOAG9567

TDE বাস্তবায়নের পদক্ষেপ

TDE বাস্তবায়ন করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. এনক্রিপশনের জন্য প্রয়োজনীয় কলাম এবং টেবিলের একটি তালিকা প্রাপ্ত করুন।

  2. নিম্নলিখিত কমান্ড চালিয়ে প্রয়োজনীয় অবস্থানে একটি ওয়ালেট ফোল্ডার তৈরি করুন:

    $ mkdir TDEWallet 
  3. sqlnet.ora বা sqlnet_ifile.ora-এ নিম্নলিখিত লাইনের সদৃশ প্রয়োজনীয় এন্ট্রি করুন:

    [oratactp@odbprod1 tactprd_odbprod1]$ cat sqlnet_ifile.ora 
  4. নিম্নলিখিত কমান্ডগুলি ব্যবহার করে মাস্টার কী সেট করুন, যা পূর্ববর্তী পদক্ষেপে নির্দিষ্ট ওয়ালেট অবস্থানে একটি ওয়ালেট ফাইল তৈরি করে:

    $ Sqlplus '/as sysdba' SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "*****"; System altered. 
  5. যদি প্যাচ 7337863 ইতিমধ্যে প্রয়োগ না করা থাকে, তবে এটি ডাউনলোড এবং প্রয়োগ করুন।

  6. $FND_TOP/sql- থেকে aftdeval.sql অ্যাপস টায়ারে اجرا করুন সেই টেবিল বা কলামের বিপরীতে যেগুলি এনক্রিপ্ট করা দরকার, নিচের উদাহরণের মতো:

    SQL> @aftdeval.sql IBY IBY_CREDITCARD CCNUMBER E 
  7. aftdeval.sql দ্বারা তৈরি সকল এনক্রিপশন কমান্ড চালান।

  8. নিম্নলিখিত কমান্ড ব্যবহার করে কোন কলামগুলি এনক্রিপ্ট করা হয়েছে তা যাচাই করুন:

    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 
  9. নিম্নলিখিত কমান্ড ব্যবহার করে ওয়ালেট খোলা বা বন্ধ করতে পারেন:

    SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "****"; SQL> SELECT * FROM v$encryption_wallet; SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "****"; 
  10. নিম্নলিখিত কমান্ড ব্যবহার করে ওয়ালেটের জন্য অটো লগইন সেট করতে পারেন:

    $ orapki wallet create -wallet <wallet_location> -auto_login 

TDE বাস্তবায়নের বাধা

TDE বাস্তবায়নের জন্য নিম্নলিখিত বাধাগুলি প্রযোজ্য:

  • শুধু নির্দিষ্ট ডেটা টাইপগুলি এনক্রিপ্ট করা যেতে পারে।

  • শুধু ৩৯৩২ বাইটের কম দৈর্ঘ্যের কলামগুলি এনক্রিপ্ট করা যেতে পারে।

  • যদি কলামটি একটি ফরেন কী-এর অংশ হয় বা অন্য ডেটাবেস কনস্ট্রেইন্টে ব্যবহার করা হয়, তবে এটিকে এনক্রিপ্ট করা যাবে না।

  • যদি কলামে একটি ফাংশন-ভিত্তিক ইনডেক্স থাকে, তবে এটিকে এনক্রিপ্ট করা যাবে না।

  • যদি একটি কলাম ইনডেক্স করা থাকে এবং সেই কলামের বিরুদ্ধে রেঞ্জ স্ক্যান করা হয়, তবে কলামটি এনক্রিপ্ট করার পর ইনডেক্সটি আর ব্যবহার করা হয় না। বদলে ফুল টেবিল স্ক্যান করা হয়।

  • যদি একটি টেবিল পার্টিশন করা থাকে এবং পার্টিশন বা সাবপার্টিশন এক্সচেঞ্জ করা হয়, তবে সমস্ত টেবিল পার্টিশন একইভাবে এনক্রিপ্ট করা থাকতে হবে। নিম্নলিখিত টেবিলগুলি বর্তমানে এই মানদণ্ড পূরণ করে:

  • 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); << এটি সমস্ত কলাম/টেবিলের জন্য পুনরাবৃত্তি করুন যেগুলি এনক্রিপ্ট করা হয়েছিল। sqlnet_ifile.ora থেকে ENCRYPTION_WALLET_LOCATION কমেন্ট আউট করুন 

উপরোক্ত কমান্ডগুলি এক্সিকিউট করার পর, পরিবেশটি রিস্টার্ট করুন এবং একটি সম্পূর্ণ স্যানিটি টেস্ট সম্পাদন করুন।

উপসংহার

কলাম স্তরে TDE বাস্তবায়ন করে, আপনি ব্যবহারকারীদের কলামে সংরক্ষিত সংবেদনশীল ডেটা দেখতে পারবেন না, যেমন ক্রেডিট কার্ড নম্বর বা মানব সম্পদ ডেটা। এনক্রিপশনের পর অ্যাপ্লিকেশন কোড পুনরায় লিখতে হবে না। বিদ্যমান কোডটি ব্যবহার করা যাবে, এবং ডেটাবেস সেশন কোনো কষ্ট ছাড়াই এনক্রিপ্ট করা ডেটা পরিচালনা করতে পারবে।

ফিডব্যাক ট্যাব ব্যবহার করে যেকোনো মন্তব্য করুন বা প্রশ্ন জিজ্ঞাসা করুন।

আমাদের ডেটাবেস সেবাগুলি সম্পর্কে আরও জানুন।


  1. Oracle EBS 12.2 কে Oracle Database 19c-এ সহজে স্থানান্তর: ধাপে ধাপে গাইড

  2. Oracle EBS এবং IDCS-এর মধ্যে নিখুঁত SSO ইন্টিগ্রেশন

  3. Transparent Data Encryption (TDE) দিয়ে Oracle ডাটাবেস সিকিউর করুন

  4. MongoDB শার্ডিং দিয়ে স্কেল করুন: একটি রোবাস্ট, স্কেলেবল আর্কিটেকচার বানান