Fungsi penyembunyian data yang telah ditentukan sebelumnya - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fungsi penyembunyian data yang telah ditentukan sebelumnya

pg_columnmaskekstensi menyediakan fungsi utilitas bawaan yang ditulis dalam bahasa C (untuk eksekusi lebih cepat) yang dapat digunakan sebagai ekspresi masking untuk pg_columnmask kebijakan.

mask_text

Fungsi untuk menutupi data teks dengan opsi visibilitas yang dapat dikonfigurasi.

Argumen

Parameter JenisData Deskripsi
input TEXT

String teks asli yang akan disamarkan

mask_char ARANG (1)

Karakter yang digunakan untuk masking (default: 'X')

visible_prefix INT

Jumlah karakter di awal teks masukan yang akan tetap terbuka kedoknya (default: 0)

visible_suffix INT

Jumlah karakter di akhir teks masukan yang akan tetap terbuka kedoknya (default: 0)

use_hash_mask BOOLEAN

Jika TRUE, gunakan masking berbasis hash alih-alih mask_char (default: FALSE)

contoh menggunakan opsi masking yang berbeda

Tutupi seluruh string input dengan karakter 'X' default

postgres=> SELECT pgcolumnmask.mask_text('Hello World'); mask_text ------------- XXXXXXXXXXX

Gunakan mask_char argumen untuk menutupi masukan teks menggunakan karakter yang berbeda

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*'); mask_text ------------- ***********

Gunakan visible_prefix dan visible_suffix parameter untuk mengontrol berapa banyak karakter yang tetap dibuka kedoknya di awal dan akhir teks

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 5, 1); mask_text ------------- Hello*****d

Kapan use_hash_mask benar, string input ditutupi menggunakan mask_char argumen karakter acak diabaikan tetapi visible_prefix dan visible_suffix masih dihormati

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 2, 2, true); mask_text ------------- Hex36dOHild

mask_timestamp

Parameter JenisData Deskripsi
ts_to_mask TIMESTAMP

Stempel waktu asli yang akan ditutup

mask_part TEXT

Menentukan bagian mana dari stempel waktu untuk menutupi (default: 'all') Nilai yang valid: 'year', 'month', 'day', 'hour', 'minute', 'second', 'all'

mask_value TIMESTAMP

Nilai stempel waktu yang digunakan untuk masking (default: '1900-01-01 00:00:00 ')

contoh menggunakan mask_timestamps

Contoh-contoh ini menunjukkan masking stempel waktu lengkap ke nilai default, penyembunyian sebagian komponen stempel waktu tertentu (hanya tahun), dan penyembunyian dengan nilai penggantian khusus.

Sepenuhnya menutupi nilai input ke stempel waktu default

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00'); mask_timestamp --------------------- 1900-01-01 00:00:00

Untuk menutupi hanya satu bagian stempel waktu dari contoh hanya tahun

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'year'); mask_timestamp --------------------- 1900-06-15 14:30:00

Untuk mengubah nilai masked untuk stempel waktu gunakan argumen mask_value

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'all', '2012-12-12 12:12:12'); mask_timestamp --------------------- 2012-12-12 12:12:12

mask_timestamp

Fungsi untuk menutupi alamat email sambil mempertahankan struktur email.

Parameter JenisData Deskripsi
input TEXT

Alamat email asli yang akan disamarkan

mask_char ARANG (1)

Karakter yang digunakan untuk masking (default: 'X')

mask_local BOOLEAN

Jika TRUE, menutupi bagian lokal email (sebelum @) (default: TRUE)

mask_domain BOOLEAN

Jika TRUE, menutupi bagian domain email (setelah @) (default: TRUE)

contoh menggunakan mask_email

Contoh-contoh ini menunjukkan masking email lengkap, karakter topeng kustom, dan penyembunyian selektif dari bagian lokal atau bagian domain dari alamat email.

Masking lengkap

postgres=> SELECT pgcolumnmask.mask_email('user@example.com'); mask_email ------------------ XXXX@XXXXXXX.com

Gunakan mask_char untuk mengubah karakter yang digunakan untuk masking

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*'); mask_email ------------------ ****@*******.com

Gunakan mask_local dan mask_domain untuk mengontrol masking pada lokal dan domain

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', true, false); mask_email ------------------ ****@example.com postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', false, true); mask_email ------------------ user@*******.com