全部产品
Search
文档中心

ApsaraDB RDS:Gunakan ekstensi rds_tde_utils untuk mengenkripsi dan mendekripsi beberapa catatan data sekaligus

更新时间:Jul 06, 2025

Transparent Data Encryption (TDE) menggunakan pernyataan ALTER untuk mengenkripsi dan mendekripsi tabel serta indeks. Untuk menyederhanakan proses enkripsi dan dekripsi, ApsaraDB RDS for PostgreSQL menyediakan ekstensi rds_tde_utils yang memungkinkan pengguna mengenkripsi dan mendekripsi beberapa catatan data sekaligus.

Prasyarat

Instans ApsaraDB RDS for PostgreSQL Anda harus memenuhi persyaratan berikut:
  • Versi utama instans RDS adalah PostgreSQL 10 atau yang lebih baru.
  • Versi mesin minor dari instans RDS adalah 20221030 atau yang lebih baru.
    Catatan Untuk informasi lebih lanjut tentang cara memperbarui versi mesin minor instans RDS, lihat Perbarui Versi Mesin Minor.
  • TDE diaktifkan. Untuk informasi lebih lanjut, lihat Konfigurasi TDE.

Catatan penggunaan

Jika Anda mengeksekusi pernyataan untuk mengenkripsi atau mendekripsi beberapa catatan data sekaligus, hasilnya hanya akan dikembalikan setelah semua catatan data selesai diproses. Jika terdapat sejumlah besar tabel dalam database, waktu yang lama mungkin diperlukan untuk menyelesaikan enkripsi atau dekripsi. Lanjutkan dengan hati-hati.

Buat atau hapus ekstensi

Catatan Disarankan agar Anda menggunakan akun dengan hak istimewa untuk mengeksekusi pernyataan yang disediakan dalam bagian ini.
  • Buat ekstensi.
    CREATE EXTENSION rds_tde_utils;
  • Hapus ekstensi.
    DROP EXTENSION rds_tde_utils;

Contoh

  1. Buat data uji.
    CREATE TABLE table_a(id int);
    CREATE INDEX index_a1 ON table_a(id);
    CREATE INDEX index_a2 ON table_a USING hash(id);
    CREATE TABLE table_b(id int);
    CREATE INDEX index_b1 ON table_b(id);
    CREATE INDEX index_b2 ON table_b USING hash(id);
  2. Enkripsi beberapa catatan data sekaligus.
    Catatan
    Proses enkripsi menulis ulang tabel. Anda dapat memanggil fungsi rds_tde_lazy_encrypt_table atau rds_tde_encrypt_table untuk mengenkripsi tabel. Daftar berikut menjelaskan logika penulisan ulang dari fungsi-fungsi tersebut:
    • Logika penulisan ulang fungsi rds_tde_lazy_encrypt_table mirip dengan LAZY VACUUM.
    • Logika penulisan ulang fungsi rds_tde_encrypt_table mirip dengan VACUUM FULL. Disarankan agar Anda tidak mengenkripsi data selama jam sibuk.
    • Enkripsi tabel bernama table_a dan indeksnya (index_a1 dan index_a2) sekaligus.
      • SELECT rds_tde_lazy_encrypt_table('table_a'::regclass);
      • SELECT rds_tde_encrypt_table('table_a'::regclass);
    • Enkripsi semua tabel (table_a dan table_b) dalam database dan indeks tabel sekaligus.
      • SELECT rds_tde_lazy_encrypt_database();
      • SELECT rds_tde_encrypt_database();
  3. Dekripsi beberapa catatan data sekaligus.
    Catatan
    Proses dekripsi menulis ulang tabel. Anda dapat memanggil fungsi rds_tde_lazy_decrypt_table atau rds_tde_decrypt_table untuk mendekripsi tabel. Daftar berikut menjelaskan logika penulisan ulang dari fungsi-fungsi tersebut:
    • Logika penulisan ulang fungsi rds_tde_lazy_decrypt_table mirip dengan LAZY VACUUM.
    • Logika penulisan ulang fungsi rds_tde_decrypt_table mirip dengan VACUUM FULL. Disarankan agar Anda tidak mendekripsi data selama jam sibuk.
    • Dekripsi tabel bernama table_a dan indeksnya (index_a1 dan index_a2) sekaligus.
      • SELECT rds_tde_lazy_decrypt_table('table_a'::regclass);
      • SELECT rds_tde_decrypt_table('table_a'::regclass);
    • Dekripsi semua tabel (table_a dan table_b) dalam database dan indeks tabel sekaligus.
      • SELECT rds_tde_lazy_decrypt_database();
      • SELECT rds_tde_decrypt_database();