Bagikan melalui


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 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

  • 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.

  • principal

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

  • Kondisi

    Untuk WHEN: ekspresi boolean yang cocok dengan yang dapat diamankan (misalnya, kondisi tag tingkat tabel). Untuk MATCH 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 adalah has_tag(), , has_tag_value()has_column_tag(), dan has_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 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);