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, masker kolom, atau kebijakan ABACGRANT. Filter baris dan masker kolom diterapkan pada katalog, skema, atau tabel, dan tersedia di Databricks Runtime 16.4 dan ke atasnya. Kebijakan ABAC GRANT diterapkan pada katalog atau skema, dan secara dinamis memberikan hak istimewa pada aset sekuritas yang mereka targetkan. 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.
Membuat, memodifikasi, atau menghapus kebijakan ABAC GRANT dengan SQL memerlukan Databricks Runtime 18 LTS atau lebih tinggi. Pada gudang SQL, dukungan tergantung pada saluran rilis gudang. Lihat Persyaratan komputasi.
Note
Databricks Runtime 18 lebih baru dari Databricks Runtime 18.0, 18.1, dan 18.2. Fitur yang sebelumnya akan dirilis sebagai versi bernomor yang lebih baru kini dirilis sebagai pembaruan bertanggal untuk Databricks Runtime 18. Untuk detailnya, lihat Tentang catatan rilis terpadu.
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 | grant_policy_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 [, ...] ) ]
grant_policy_body
TO principal [, ...]
[ EXCEPT principal [, ...] ]
GRANT privilege [, ...]
FOR grant_target_type
[ WHEN condition ]
Kebijakan filter baris dan masker kolom dapat didefinisikan pada katalog, skema, atau tabel. GRANT Kebijakan hanya dapat didefinisikan pada katalog atau skema.
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.
hak istimewa
Dalam
grant_policy_body, hak istimewa untuk diberikan pada setiap jaminan yang sesuai dengan polis. Hak istimewa yang valid bergantung padagrant_target_type. Lihat Jenis dan hak istimewa yang dapat diamankan yang didukung.grant_target_type
Dalam
grant_policy_body, jenis hak yang dapat diamankan yang diberikan berlaku. Gunakan bentuk jamak:MODELS, , ,MODEL PROVIDER SERVICESMCP SERVICES, atauAGENT SERVICESMODEL SERVICES. Bentuk yang digarisbawahi, sepertiMODEL_SERVICES, juga diterima. Bentuk tunggal tidak diterima.principal
Nama pengguna, grup, atau perwakilan layanan. Beberapa prinsipal dapat dicantumkan setelah
TO. Prinsipal yang tercantum setelahEXCEPTdikecualikan dari kebijakan.-
WHENadalah ekspresi boolean yang menentukan apakah kebijakan berlaku, berdasarkan tag pada securable, atribut identitas pengguna yang mengajukan kueri, dan/atau konteks permintaan.MATCH COLUMNSadalah ekspresi boolean yang mencocokkan kolom berdasarkan tagnya (misalnya,has_tag('pii')).Kondisi dievaluasi oleh bidang kontrol. Fungsi-fungsi berikut didukung dalam kondisi:
-
Fungsi tag (
has_tag()danhas_tag_value()): didukung di kedua danWHENMATCH COLUMNS. Saat digunakan dalamWHEN, tag tersebut dicentang yang diatur langsung pada tabel atau diwarisi dari katalog induk atau skema. Saat digunakan dalamMATCH COLUMNS, mereka memeriksa tag yang diatur langsung pada kolom saja. Bentuk camelCase yang lebih lama (hasTag,hasTagValue) terus bekerja untuk kompatibilitas mundur. -
Fungsi atribut identitas (
has_identity_attribute_value()danhas_identity_attribute_tag_match()): didukung dalamWHENklausa kebijakan masker kolom, di mana mereka mengevaluasi atribut identitas pengguna yang menjalankan kueri. Mereka tidak didukung diGRANTatauDENYpolicies atau diMATCH COLUMNS. Lihat Masker kolom berdasarkan atribut pengguna yang melakukan kueri. -
Fungsi atribut konteks (
has_context_attribute()danhas_context_attribute_value()): didukung dalamWHENklausa kebijakan filter baris dan masker kolom, di mana mereka mengevaluasi konteks permintaan, seperti aplikasi yang memanggil. Mereka tidak didukung dalamMATCH COLUMNS. Lihat Batasi akses untuk agen eksternal yang bertindak atas nama pengguna.
Jika kondisi tidak valid, Azure Databricks akan menaikkan UC_INVALID_POLICY_CONDITION.
-
Fungsi tag (
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);
Contoh berikut membuat kebijakan ABAC GRANT yang memberikan hibah EXECUTE pada setiap layanan model yang dibuat oleh Anthropic:
> CREATE POLICY grant_anthropic_model_services
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on Anthropic model services'
TO data_scientists
EXCEPT contractors
GRANT EXECUTE FOR MODEL SERVICES
WHEN has_tag_value('ai.model_creator', 'anthropic');