Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kolom
Berlaku untuk:
Databricks SQL
Databricks Runtime 12.2 LTS ke atas
Unity Catalog saja
Menentukan fungsi yang diterapkan ke kolom setiap kali baris diambil dari tabel. Semua kueri berikutnya dari kolom tersebut menerima hasil evaluasi fungsi tersebut di atas kolom sebagai pengganti nilai asli kolom. Ini dapat berguna untuk tujuan kontrol akses berbutir halus di mana fungsi dapat memeriksa identitas atau keanggotaan grup dari pengguna yang memanggil untuk menentukan apakah akan menyunting nilai tersebut.
Anda dapat menambahkan masker kolom saat Anda:
- Buat tabel menggunakan CREATE TABLE.
- Tambahkan kolom ke tabel dengan ALTER TABLE ... TAMBAHKAN COLUMN.
- Mengubah kolom dengan ALTER TABLE ... UBAH COLUMN.
Penting
Masker diterapkan segera setelah setiap baris diambil dari sumber data. Ekspresi, predikat, atau pengurutan apa pun diterapkan setelah penyamaran. Misalnya, menggabungkan kolom bertopeng dengan kolom lain dari tabel lain akan menggunakan nilai bertopeng untuk perbandingan penggabungan.
Untuk informasi selengkapnya tentang cara menggunakan masker kolom, lihat tabel Azure Databricks.
Sintaks
MASK func_name [ USING COLUMNS ( other_column_name | constant_literal [, ...] ) ]
Parameter
-
SQL UDF skalar dengan setidaknya satu parameter.
Parameter pertama dari UDF SQL memetakan 1:1 dengan kolom yang dimasking. Jenis kolom bertopeng harus dapat dikonversi ke jenis parameter UDF SQL. Jika
func_namememerlukan lebih banyak parameter, argumen harus disediakan oleh klausaUSING COLUMNS.Jenis pengembalian fungsi harus dapat di-casting ke jenis data kolom yang ditutupi.
-
Secara opsional menentukan kolom tambahan dari tabel kolom bertopeng untuk diteruskan ke
func_name. Masing-masingother_column_nameharus dapat diubah ke parameter yang sesuai darifunc_name.Gunakan masker kolom untuk menganonimkan nilai
column_identifiersecara selektif berdasarkan pengguna yang menjalankan kueri terhadaptable_name, nilaicolumn_identifier, dan opsiother_column. constant_literal
Menentukan parameter konstanta dengan jenis yang cocok dengan parameter fungsi. Jenis berikut didukung:
STRING, numerik (INTEGER, ,FLOAT,DOUBLEDECIMAL...),BOOLEAN, , .INTERVALNULL
Contoh
Anda dapat menemukan contoh lainnya dalam tabel Azure Databricks.
-- 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
-- Create a masking function with multiple parameters. When applied first parameter will be the column that masking function applies to
> CREATE FUNCTION mask_pii_regional(value STRING, region STRING)
RETURN IF(is_account_group_member(region || '_HumanResourceDept'), value, 'REDACTED');
-- Create a table with a masked column. Masking function first parameter will be the column that is masked.
-- The rest of the parameters should be specified in `USING COLUMNS (<columnList>)` clause
> CREATE TABLE persons(name STRING, address STRING MASK mask_pii_regional USING COLUMNS (region), region STRING);
> INSERT INTO persons('James', '160 Spear St, San Francisco', 'US')
-- As a non-member of 'US_HumanResourceDept'
> SELECT * FROM persons;
James | REDACTED | US
-- As a member of 'US_HumanResourceDept'
> SELECT * FROM persons;
James | 160 Spear St, San Francisco | US