Melarikan diri dari pengidentifikasi dalam prosedur DDL kebijakan masking - Amazon Aurora

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

Melarikan diri dari pengidentifikasi dalam prosedur DDL kebijakan masking

Saat membuat kebijakan penyembunyian data dengan pengidentifikasi yang dikutip, pelolosan yang tepat diperlukan untuk memastikan referensi objek dan aplikasi kebijakan yang benar. Untuk menggunakan pengenal yang dikutip dalam prosedur manajemen kebijakan pg_columnmask masking:

  • Nama kebijakan — Harus dilampirkan dalam tanda kutip ganda.

  • Nama tabel - Baik nama skema dan nama tabel harus dilampirkan dalam tanda kutip ganda satu per satu bila diperlukan.

  • Ekspresi masking - Nama kolom dan fungsi dalam ekspresi masking harus diapit tanda kutip ganda dan tanda kutip itu sendiri harus diloloskan menggunakan garis miring terbalik.

  • Peran - Array nama peran dikutip secara otomatis. Nama peran harus sama persis dengan nama seperti yang terlihat di pg_roles termasuk sensitivitas kasus.

contoh dari melarikan diri dan mengutip sintaks

Contoh ini menunjukkan sintaks escaping dan kutipan yang tepat saat membuat kebijakan masking untuk tabel, kolom, fungsi, dan peran yang menggunakan nama kasus campuran atau memerlukan pengidentifikasi yang dikutip di Aurora PostgreSQL.

-- Create a table and columns with mixed case name CREATE TABLE public."Employees" ( "Name" TEXT, "Email" TEXT, ssn VARCHAR(20) ); -- Create a role with mixed case name CREATE ROLE "Masked_user"; -- Create a function with mixed case name CREATE OR REPLACE FUNCTION public."MaskEmail"(text) RETURNS character varying LANGUAGE plpgsql IMMUTABLE PARALLEL SAFE AS $$ BEGIN RETURN 'XXXXXXXX'::text; END $$; -- Now use these objects with mixed case names in -- masking policy management procedures CALL pgcolumnmask.create_masking_policy( '"Policy1"', -- policy name should be surrounded with double quotes for quoting 'public."Employees"', -- table and schema name should be individually -- surrounded with double quotes for quoting JSON_OBJECT('{ "\"Email\"", "\"MaskEmail\"(\"Email\")" }')::JSONB, -- masking expression should have double quotes around function names -- and columns names etc when needed. Also the double quotes itself -- should be escaped using \ (backslash) since this is a JSON string ARRAY['Masked_user'], -- Rolename do not need quoting -- (this behaviour may change in future release) 100 ); SELECT * FROM pgcolumnmask.pg_columnmask_policies WHERE tablename = 'Employees'; -[ RECORD 1 ]-----+------------------------------------- schemaname | public tablename | Employees policyname | Policy1 roles | {Masked_user} masked_columns | {Email} masking_functions | {"(\"MaskEmail\"(\"Email\"))::text"} weight | 100

Pandangan administratif

Anda dapat meninjau semua pg_columnmask kebijakan menggunakan tampilan pgcolumnmask.pg_columnmask_policies administratif yang dapat diakses publik. Informasi berikut tersedia menggunakan tampilan ini. Tampilan hanya menampilkan kebijakan masking yang dimiliki oleh pengguna saat ini.

Nama kolom Jenis data Deskripsi

nama skema

NAME

Skema hubungan dengan mana kebijakan dilampirkan

tablename

NAME

Nama hubungan yang dilampirkan kebijakan

nama kebijakan

NAME

Nama kebijakan masking, semua kebijakan masking memiliki nama unik

peran

TEKS []

Peran kebijakan yang berlaku.

bertopeng_kolom

TEKS []

Kolom bertopeng

masking_functions

TEKS []

Fungsi masking

berat INT

Bobot kebijakan terlampir