Klausa kolom mask

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 12.2 LTS dan di atas centang ditandai ya Unity Catalog saja

Penting

Fitur ini ada di Pratinjau Publik.

Menentukan fungsi yang diterapkan ke kolom setiap kali baris diambil dari tabel. Semua kueri di masa mendatang dari kolom tersebut akan menerima hasil evaluasi fungsi tersebut di atas kolom sebagai pengganti nilai asli kolom. Ini dapat berguna untuk tujuan kontrol akses terperintah di mana fungsi dapat memeriksa identitas atau keanggotaan grup pengguna yang memanggil untuk memutuskan apakah akan meredakan nilai.

Anda dapat menambahkan masker kolom saat Anda:

Penting

Masker diterapkan segera setelah setiap baris diambil dari sumber data. Ekspresi, predikat, atau pengurutan apa pun diterapkan setelah masking. Misalnya, menggabungkan antara kolom bertopeng terhadap kolom lain dari tabel lain akan menggunakan nilai bertopeng untuk perbandingan gabungan.

Untuk informasi selengkapnya tentang cara menggunakan masker kolom lihat Memfilter data tabel sensitif menggunakan filter baris dan masker kolom.

Sintaks

MASK func_name [ USING COLUMNS ( other_column_name [, ...] ) ]

Parameter

  • func_name

    SQL UDF skalar dengan setidaknya satu parameter.

    Parameter pertama peta UDF SQL 1:1 dengan kolom bertopeng. Jenis kolom bertopeng harus dapat dicor ke jenis parameter SQL UDF. Jika func_name memerlukan lebih banyak parameter, argumen harus disediakan oleh USING COLUMNS klausa.

    Jenis pengembalian fungsi harus dapat ditransmisikan ke jenis data kolom bertopeng.

  • other_column_name

    Secara opsional menentukan kolom tambahan dari tabel kolom bertopeng untuk diteruskan ke func_name. Masing-masing other_column_name harus dicor ke parameter yang sesuai dari func_name.

    Gunakan masker kolom untuk secara selektif menganonimkan column_identifier nilai berdasarkan pengguna yang menjalankan kueri terhadap table_name, nilai column_identifier dan opsional other_column.

Contoh

Anda dapat menemukan contoh lainnya di Memfilter data tabel sensitif menggunakan filter baris dan masker kolom.

-- Create a table with a masked column
> CREATE FUNCTION mask_ssn(ssn STRING) RETURN CASE WHEN is_member('HumanResourceDept') THEN ssn ELSE '***-**-****' END;
> CREATE TABLE persons(name STRING, ssn STRING MASK mask_ssn);
> INSERT INTO persons VALUES('James', '123-45-6789';

-- As a non-member of 'HumanResourceDept'
> SELECT * FROM persons;
  James  ***-**-****

-- As a member of 'HumanResourceDept'
> SELECT * FROM persons;
  James  123-45-6789