BUAT KEBIJAKAN

Berlaku untuk:ditandai ya Databricks SQL ditandai ya Databricks Runtime 16.4 ke atas ditandai ya 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

  • policy_name

    Nama kebijakan. Nama dilingkup ke kebijakan yang dapat diamankan didefinisikan. Jika kebijakan dengan nama yang sama sudah ada dan OR REPLACE tidak ditentukan, Azure Databricks akan menaikkan POLICY_ALREADY_EXISTS.

  • catalog_name

    Nama katalog tempat kebijakan ditentukan. Jika jenis yang dapat diamankan tidak didukung untuk kebijakan, Azure Databricks akan menaikkan POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.

  • schema_name

    Nama skema tempat kebijakan ditentukan.

  • table_name

    Nama tabel tempat kebijakan ditentukan.

  • deskripsi

    Komentar string opsional untuk kebijakan.

  • function_name

    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 pada grant_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, atau AGENT SERVICESMODEL SERVICES. Bentuk yang digarisbawahi, seperti MODEL_SERVICES, juga diterima. Bentuk tunggal tidak diterima.

  • principal

    Nama pengguna, grup, atau perwakilan layanan. Beberapa prinsipal dapat dicantumkan setelah TO. Prinsipal yang tercantum setelah EXCEPT dikecualikan dari kebijakan.

  • Kondisi

    WHEN adalah ekspresi boolean yang menentukan apakah kebijakan berlaku, berdasarkan tag pada securable, atribut identitas pengguna yang mengajukan kueri, dan/atau konteks permintaan.

    MATCH COLUMNS adalah 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() dan has_tag_value()): didukung di kedua dan WHENMATCH COLUMNS. Saat digunakan dalam WHEN, tag tersebut dicentang yang diatur langsung pada tabel atau diwarisi dari katalog induk atau skema. Saat digunakan dalam MATCH 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() dan has_identity_attribute_tag_match()): didukung dalam WHEN klausa kebijakan masker kolom, di mana mereka mengevaluasi atribut identitas pengguna yang menjalankan kueri. Mereka tidak didukung di GRANT atau DENY policies atau di MATCH COLUMNS. Lihat Masker kolom berdasarkan atribut pengguna yang melakukan kueri.
    • Fungsi atribut konteks (has_context_attribute() dan has_context_attribute_value()): didukung dalam WHEN klausa kebijakan filter baris dan masker kolom, di mana mereka mengevaluasi konteks permintaan, seperti aplikasi yang memanggil. Mereka tidak didukung dalam MATCH COLUMNS. Lihat Batasi akses untuk agen eksternal yang bertindak atas nama pengguna.

    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 dalam USING COLUMNS (filter baris) atau di ON COLUMN dan USING COLUMNS (masker kolom).

  • function_arg

    Dalam USING COLUMNS, setiap argumen adalah ekspresi konstanta atau alias dari MATCH 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');