Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Prosedur untuk mengelola kebijakan penyembunyian data
Anda dapat mengelola kebijakan masking menggunakan prosedur yang disediakan oleh pg_columnmask ekstensi. Untuk membuat, memodifikasi, atau menghapus kebijakan masking, Anda harus memiliki salah satu hak istimewa berikut:
-
Pemilik tabel tempat Anda membuat
pg_columnmaskkebijakan. -
Anggota dari
rds_superuser. -
Anggota peran manajer
pg_columnmaskkebijakan yang ditetapkan olehpgcolumnmask.policy_admin_rolnameparameter.
Perintah berikut membuat tabel yang digunakan di bagian berikutnya:
CREATE TABLE public.customers ( id SERIAL PRIMARY KEY, name TEXT, phone TEXT, address TEXT, email TEXT );
CREATE_MASKING_POLICY
Prosedur berikut membuat kebijakan masking baru untuk tabel pengguna:
Sintaksis
create_masking_policy( policy_name, table_name, masking_expressions, roles, weight)
Argumen
| Parameter | JenisData | Deskripsi |
|---|---|---|
policy_name |
NAME |
Nama kebijakan masking. Harus unik per tabel. |
table_name |
REGCLASS |
qualified/unqualified Nama atau oid tabel untuk menerapkan kebijakan masking. |
masking_expressions |
JSONB |
Objek JSON yang berisi nama kolom dan pasangan fungsi masking. Setiap kunci adalah nama kolom dan nilainya adalah ekspresi masking yang akan diterapkan pada kolom itu. |
roles |
NAMA [] |
Peran yang diterapkan kebijakan masking ini. Defaultnya adalah PUBLIK. |
weight |
INT |
Bobot kebijakan masking. Jika beberapa kebijakan berlaku untuk kueri pengguna tertentu, kebijakan dengan bobot tertinggi (bilangan bulat lebih tinggi) akan diterapkan ke setiap kolom bertopeng. Default-nya adalah 0. Tidak ada dua kebijakan masking di atas meja yang dapat memiliki kekuatan yang sama. |
Jenis pengembalian
Tidak ada
contoh membuat kebijakan masking yang menutupi kolom email untuk test_user peran tersebut:
CALL pgcolumnmask.create_masking_policy( 'customer_mask', 'public.customers', JSON_OBJECT('{ "email", "pgcolumnmask.mask_email(email)" }')::JSONB, ARRAY['test_user'], 100 );
ALTER_MASKING_POLICY
Prosedur ini memodifikasi kebijakan masking yang ada. ALTER_MASKING_POLICYdapat memodifikasi ekspresi masking kebijakan, serangkaian peran yang diterapkan kebijakan dan bobot kebijakan masking. Ketika salah satu parameter tersebut dihilangkan, bagian yang sesuai dari kebijakan tidak berubah.
Sintaksis
alter_masking_policy( policy_name, table_name, masking_expressions, roles, weight)
Argumen
| Parameter | JenisData | Deskripsi |
|---|---|---|
policy_name |
NAME |
Nama kebijakan masking yang ada. |
table_name |
REGCLASS |
qualified/unqualified Nama oid dari tabel yang berisi kebijakan masking. |
masking_expressions |
JSONB |
Objek JSON baru yang berisi nama kolom dan pasangan fungsi masking atau NULL sebaliknya. |
roles |
NAMA [] |
Daftar peran baru yang diterapkan kebijakan penyembunyian ini atau NULL sebaliknya. |
weight |
INT |
Bobot baru untuk kebijakan masking atau NULL sebaliknya. |
Jenis pengembalian
Tidak ada
contoh menambahkan peran analis ke kebijakan masking yang ada tanpa mengubah atribut kebijakan lainnya.
CALL pgcolumnmask.alter_masking_policy( 'customer_mask', 'public.customers', NULL, ARRAY['test_user', 'analyst'], NULL ); -- Alter the weight of the policy without altering other details CALL pgcolumnmask.alter_masking_policy( 'customer_mask', 'customers', NULL, NULL, 4 );
DROP_MASKING_POLICY
Prosedur ini menghapus kebijakan masking yang ada.
Sintaksis
drop_masking_policy( policy_name, table_name)
Argumen
| Parameter | JenisData | Deskripsi |
|---|---|---|
policy_name |
NAME |
Nama kebijakan masking yang ada. |
table_name |
REGCLASS |
qualified/unqualified Nama oid dari tabel yang berisi kebijakan masking. |
Jenis pengembalian
Tidak ada
contoh menjatuhkan kebijakan masking customer_mask
-- Drop a masking policy CALL pgcolumnmask.drop_masking_policy( 'customer_mask', 'public.customers', );