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.
Berlaku untuk:
Databricks SQL
Databricks Runtime 16.4 ke atas
Unity Catalog saja
Membuat kebijakan bernama pada yang dapat diamankan. Kebijakan dapat berupa filter baris atau masker kolom yang diterapkan ke katalog, skema, atau tabel. Nama kebijakan dilingkup ke yang dapat diamankan, kebijakan didefinisikan.
Untuk menjalankan pernyataan ini, Anda harus memiliki MANAGE hak istimewa pada target yang dapat diamankan atau menjadi pemiliknya.
Sintaksis
CREATE [ OR REPLACE ] POLICY policy_name
ON { CATALOG catalog_name | SCHEMA schema_name | TABLE table_name }
[ COMMENT description ]
{ row_filter_body | column_mask_body }
row_filter_body
ROW FILTER function_name
TO principal [, ...]
[ EXCEPT principal [, ...] ]
FOR TABLES
[ WHEN condition ]
[ MATCH COLUMNS condition [ [ AS ] alias ] [, ...] ]
[ USING COLUMNS ( function_arg [, ...] ) ]
column_mask_body
COLUMN MASK function_name
TO principal [, ...]
[ EXCEPT principal [, ...] ]
FOR TABLES
[ WHEN condition ]
[ MATCH COLUMNS condition [ [ AS ] alias ] [, ...] ]
ON COLUMN alias
[ USING COLUMNS ( function_arg [, ...] ) ]
Parameter-parameternya
-
Nama kebijakan. Nama dilingkup ke kebijakan yang dapat diamankan didefinisikan. Jika kebijakan dengan nama yang sama sudah ada dan
OR REPLACEtidak ditentukan, Azure Databricks akan menaikkan POLICY_ALREADY_EXISTS. -
Nama katalog tempat kebijakan ditentukan. Jika jenis yang dapat diamankan tidak didukung untuk kebijakan, Azure Databricks akan menaikkan POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
Nama skema tempat kebijakan ditentukan.
-
Nama tabel tempat kebijakan ditentukan.
deskripsi
Komentar string opsional untuk kebijakan.
-
Nama UDF yang digunakan untuk filter baris atau masker kolom.
principal
Nama pengguna, grup, atau perwakilan layanan. Beberapa prinsipal dapat dicantumkan setelah
TO. Prinsipal yang tercantum setelahEXCEPTdikecualikan dari kebijakan.-
Untuk
WHEN: ekspresi boolean yang cocok dengan yang dapat diamankan (misalnya, kondisi tag tingkat tabel). UntukMATCH COLUMNS: ekspresi boolean yang cocok dengan kolom (misalnya,has_tag('tag_name')). Kondisi dievaluasi oleh sarana kontrol pada metadata yang dapat diamankan. Satu-satunya fungsi yang didukung pengguna dalam kondisi adalahhas_tag(), ,has_tag_value()has_column_tag(), danhas_column_tag_value(). Formulir camelCase yang lebih lama (hasTag, ,hasTagValuehasColumnTag,hasColumnTagValue) terus bekerja untuk kompatibilitas mundur. Jika kondisi tidak valid, Azure Databricks akan menaikkan UC_INVALID_POLICY_CONDITION. alias
Di
MATCH COLUMNS, pengidentifikasi opsional untuk kolom yang cocok. Alias dapat dirujuk dalamUSING COLUMNS(filter baris) atau diON COLUMNdanUSING COLUMNS(masker kolom).function_arg
Dalam
USING COLUMNS, setiap argumen adalah ekspresi konstanta atau alias dariMATCH COLUMNS. Argumen diteruskan ke fungsi kebijakan secara berurutan. Jika opsi tidak cocok dengan jenis kebijakan, Azure Databricks akan menaikkan UC_POLICY_TYPE_OPTIONS_MISMATCH.
Examples
Contoh berikut membuat kebijakan masker kolom:
> CREATE FUNCTION ssn_to_last_nr (ssn STRING, nr INT) RETURNS STRING
RETURN right(ssn, nr);
> CREATE POLICY ssn_mask
ON CATALOG employees
COLUMN MASK ssn_to_last_nr
TO 'All Users' EXCEPT 'HR admins'
FOR TABLES
MATCH COLUMNS has_tag('ssn') AS ssn
ON COLUMN ssn
USING COLUMNS (4);
Contoh berikut membuat kebijakan filter baris:
> CREATE FUNCTION non_eu_region (geo_region STRING) RETURNS BOOLEAN
RETURN geo_region <> 'eu';
> CREATE POLICY hide_eu_customers
ON SCHEMA prod.customers
COMMENT 'Hide European customers from sensitive tables'
ROW FILTER non_eu_region
TO analysts
FOR TABLES
WHEN has_tag_value('sensitivity', 'high')
MATCH COLUMNS has_tag('geo_region') AS region
USING COLUMNS (region);