บล็อกนี้กล่าวถึงการตั้งค่าการเข้ารหัสระดับคอลัมน์ของการเข้ารหัสข้อมูลแบบโปร่งใส (TDE) ในสภาพแวดล้อม Oracle® E-Business Suite® (EBS) R12 คุณสามารถตั้งค่าการเข้ารหัสระดับคอลัมน์ในตารางคอลัมน์เดียวหรือหลายคอลัมน์ได้ ขึ้นอยู่กับความต้องการของผู้ใช้
แนะนำตัว
คุณสามารถใช้ฟังก์ชันการเข้ารหัสคอลัมน์ TDE เพื่อเข้ารหัสคอลัมน์ของตารางที่เลือกได้ เนื่องจากการเข้ารหัสมีความโปร่งใส คุณไม่จำเป็นต้องเขียนรหัสแอปพลิเคชันใหม่และสามารถใช้รหัสที่มีอยู่ได้ คำว่า โปร่งใส ยังหมายความว่าเซสชันฐานข้อมูลสามารถอ่านข้อมูลที่เข้ารหัสได้โดยไม่มีปัญหาใดๆ
หลังจากทำตามคำแนะนำในบล็อกนี้แล้ว คุณสามารถตั้งค่า TDE column-levelencryption ในสภาพแวดล้อม EBS R12 ได้
ผลกระทบของ TDE
การใช้การเข้ารหัส TDE ของคุณอาจมีผลกระทบต่อแอปพลิเคชันของคุณในด้านต่อไปนี้:
-
ประสิทธิภาพ:ข้อจำกัดบางประการในการใช้ TDE ได้รับการบันทึกไว้ในคู่มือการรักษาความปลอดภัยขั้นสูง คุณควรตรวจสอบสิ่งนี้ก่อนใช้งาน TDE คุณควรเลือกคอลัมน์ที่จะเข้ารหัสด้วยความระมัดระวัง เนื่องจากตัวเลือกจะส่งผลต่อประสิทธิภาพของภาษาการจัดการข้อมูล (DML) และการสืบค้นข้อมูลอื่นๆ ที่ใช้คอลัมน์ที่เข้ารหัส
-
การแก้ไข:คุณควรทราบเกี่ยวกับแพตช์ EBS ที่มีอยู่ โดยเฉพาะอย่างยิ่งแพตช์ที่ใช้การเปลี่ยนแปลงกับคอลัมน์และเข้ารหัสโดยใช้ TDE ซึ่งรวมถึงการเปลี่ยนแปลงต่างๆ เช่น การเพิ่มดัชนีในคอลัมน์ที่เข้ารหัส
ข้อจำกัดของ TDE
ไม่รองรับการเข้ารหัสคอลัมน์ TDE กับเทคโนโลยีที่ใช้ Oracle LogMiner เช่น Streams หรือ DataGuard ในโหมดสแตนด์บายเชิงตรรกะ หากคุณกำลังใช้เทคโนโลยีเหล่านี้ คุณจะไม่สามารถทำซ้ำคอลัมน์ที่เข้ารหัสได้ อย่างไรก็ตาม การเข้ารหัส TDE ได้รับการสนับสนุนเมื่อคุณใช้ DataGuard ในโหมดสแตนด์บายทางกายภาพ ในกรณีนี้ ต้องคัดลอก awallet ที่มีมาสเตอร์คีย์จากเซิร์ฟเวอร์หลักไปยังเซิร์ฟเวอร์สแตนด์บายแบบ aphysical ดังที่แสดงในภาพต่อไปนี้:
แหล่งที่มาของรูปภาพ: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
โดยใช้คำสั่งต่อไปนี้ ซึ่งสร้าง walletfile ที่ตำแหน่ง wallet ที่ระบุในขั้นตอนก่อนหน้า:$ Sqlplus '/as sysdba' SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "*****"; System altered.
-
ดาวน์โหลดและใช้โปรแกรมแก้ไข
7337863
ถ้ายังไม่ได้สมัคร -
ดำเนินการ
aftdeval.sql
บน AppsTier จาก$FND_TOP/sql
เทียบกับคอลัมน์ tableor ที่ต้องเข้ารหัส ดังตัวอย่างต่อไปนี้: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 "****";
-
คุณสามารถตั้งค่าเข้าสู่ระบบอัตโนมัติ สำหรับกระเป๋าเงินโดยใช้คำสั่งต่อไปนี้:
$ orapki wallet create -wallet <wallet_location> -auto_login
ข้อจำกัดในการใช้งาน TDE
ข้อจำกัดต่อไปนี้ใช้กับการใช้งาน TDE:
-
สามารถเข้ารหัสข้อมูลได้บางประเภทเท่านั้น
-
เข้ารหัสได้เฉพาะคอลัมน์ที่กำหนดความยาวน้อยกว่า 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
หลังจากรันคำสั่งก่อนหน้าแล้ว ให้รีสตาร์ทสภาพแวดล้อมและทำการทดสอบสติให้สมบูรณ์
บทสรุป
เมื่อใช้ TDE ที่ระดับคอลัมน์ คุณจะป้องกันไม่ให้ผู้ใช้เห็นข้อมูลที่ละเอียดอ่อนที่จัดเก็บไว้ในคอลัมน์ เช่น หมายเลขบัตรเครดิตหรือข้อมูลทรัพยากรบุคคล คุณไม่จำเป็นต้องเขียนรหัสแอปพลิเคชันใหม่หลังจากการเข้ารหัส สามารถใช้รหัสที่มีอยู่แล้ว และเซสชันฐานข้อมูลสามารถจัดการข้อมูลที่เข้ารหัสได้โดยไม่มีปัญหา
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม
เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา