Tüm Ürünler
Search
Belge Merkezi

ApsaraDB RDS:The rds_tde_utils extension for bulk TDE encryption and decryption

Son Güncelleme:Oct 03, 2026

Tabloları ALTER ifadeleriyle şifrelemek veya şifresini çözmek, her tablo için ayrı bir ifade gerektirir; bu durum büyük veritabanlarında pratik değildir. rds_tde_utils uzantısı, birden çok tabloyu ve dizini tek seferde — tek bir tabloyu veya veritabanındaki tüm tabloları — şifrelemenize veya şifresini çözmenize olanak tanır.

Ön koşullar

Başlamadan önce aşağıdakilerin sağlandığından emin olun:

Kullanım notları

Toplu şifreleme ve şifre çözme işlemleri eşzamanlı olarak yürütülür; çağrı, yalnızca tüm tablolar ve dizinler işlendikten sonra döner. Bir veritabanında çok sayıda tablo varsa bu işlemler uzun sürebilir. Dikkatli ilerleyin.

Uzantıyı yükleme ve kaldırma

Aşağıdaki ifadeleri yetkili bir hesap kullanarak çalıştırın.

Uzantıyı yükleyin:

CREATE EXTENSION rds_tde_utils;

Uzantıyı kaldırın:

DROP EXTENSION rds_tde_utils;

İşlev başvurusu

Bu uzantı sekiz işlev sağlar. Her işlev, iki yeniden yazma yönteminden birini kullanarak ya tek bir tablo üzerinde ya da tüm veritabanı kapsamında çalışır.

Yeniden yazma yöntemi seçimi

Yöntem Davranış
Lazy Yeniden yazma mantığı LAZY VACUUM işlemine benzer.
Full Yeniden yazma mantığı VACUUM FULL işlemine benzer. Yoğun saatlerde çalıştırmayın.

Şifreleme işlevleri

İşlev Kapsam Yöntem
rds_tde_lazy_encrypt_table('table_name'::regclass) Tek tablo ve dizinleri Lazy
rds_tde_encrypt_table('table_name'::regclass) Tek tablo ve dizinleri Full
rds_tde_lazy_encrypt_database() Veritabanındaki tüm tablolar ve dizinler Lazy
rds_tde_encrypt_database() Veritabanındaki tüm tablolar ve dizinler Full

Şifre çözme işlevleri

İşlev Kapsam Yöntem
rds_tde_lazy_decrypt_table('table_name'::regclass) Tek tablo ve dizinleri Lazy
rds_tde_decrypt_table('table_name'::regclass) Tek tablo ve dizinleri Full
rds_tde_lazy_decrypt_database() Veritabanındaki tüm tablolar ve dizinler Lazy
rds_tde_decrypt_database() Veritabanındaki tüm tablolar ve dizinler Full

Örnekler

Test tablolarını oluşturma

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);

Tek bir tabloyu ve dizinlerini şifreleme

Çalışan iş yükleri üzerindeki etkiyi azaltmak için lazy yöntemini kullanın:

SELECT rds_tde_lazy_encrypt_table('table_a'::regclass);

Tam tablo yeniden yazması için yoğun saatler dışında full yöntemini kullanın:

SELECT rds_tde_encrypt_table('table_a'::regclass);

Veritabanındaki tüm tabloları ve dizinleri şifreleme

-- Lazy method (lower impact)
SELECT rds_tde_lazy_encrypt_database();

-- Full method (complete rewrite, run during off-peak hours)
SELECT rds_tde_encrypt_database();

Tek bir tablonun ve dizinlerinin şifresini çözme

-- Lazy method
SELECT rds_tde_lazy_decrypt_table('table_a'::regclass);

-- Full method (run during off-peak hours)
SELECT rds_tde_decrypt_table('table_a'::regclass);

Veritabanındaki tüm tabloların ve dizinlerin şifresini çözme

-- Lazy method (lower impact)
SELECT rds_tde_lazy_decrypt_database();

-- Full method (complete rewrite, run during off-peak hours)
SELECT rds_tde_decrypt_database();