Aracılığıyla paylaş


İLKE OLUŞTURMA

Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime 16.4 ve üzeri evet olarak işaretlendi Sadece Unity Kataloğu

Güvenli hale getirilebilir bir üzerinde adlandırılmış bir ilke oluşturur. İlkeler, kataloglara, şemalara veya tablolara uygulanan satır filtreleri veya sütun maskeleri olabilir. İlke adının kapsamı, ilkenin tanımlandığı güvenli hale getirilebilir değer olarak belirlenmiştir.

Bu deyimi çalıştırmak için güvenli hale getirilebilen hedefte ayrıcalığınız olması veya bunun sahibi olmanız gerekir MANAGE .

Sözdizimi

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 [, ...] ) ]

Parametreler

  • policy_name

    İlkenin adı. Adın kapsamı, ilkenin tanımlandığı güvenli hale getirilebilir addır. Aynı ada sahip bir ilke zaten varsa ve OR REPLACE belirtilmemişse, Azure Databricks POLICY_ALREADY_EXISTS yükseltir.

  • catalog_name

    İlkenin tanımlandığı kataloğun adı. Güvenliği sağlanabilir tür ilkeler için desteklenmiyorsa, Azure Databricks POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED yükseltir.

  • schema_name

    İlkenin tanımlandığı şemanın adı.

  • table_name

    İlkenin tanımlandığı tablonun adı.

  • Açıklama

    İlke için isteğe bağlı bir dize açıklaması.

  • function_name

    Satır filtresi veya sütun maskesi için kullanılan UDF'nin adı.

  • principal

    Kullanıcı, grup veya hizmet asıl adı. birden çok sorumlu sonra TOlistelenebilir. Sonra listelenen EXCEPT sorumlular ilkenin dışında tutulur.

  • Durum

    için WHEN: güvenli hale getirilebilir değerlerle eşleşen boole ifadesi (örneğin, tablo düzeyi etiket koşulları). için MATCH COLUMNS: sütunlarıyla eşleşen boole ifadesi (örneğin, hasTag('tag_name')). Koşullar, güvenli hale getirilebilir meta verilerde denetim düzlemi tarafından değerlendirilir. Koşullarda desteklenen tek kullanıcıya yönelik işlevler ve hasTagValue()'tirhasTag(). Koşul geçersizse Azure Databricks UC_INVALID_POLICY_CONDITION oluşturur.

  • alias

    içinde MATCH COLUMNS, eşleşen sütun için isteğe bağlı bir tanımlayıcı . Diğer ada (satır filtresi) veya ve USING COLUMNS (sütun maskesi) içinde ON COLUMN başvurulabilir USING COLUMNS .

  • function_arg

    içinde USING COLUMNS, her bağımsız değişken bir sabit ifade veya 'den MATCH COLUMNSbir diğer addır. Bağımsız değişkenler, ilke işlevine sırayla geçirilir. Seçenekler ilke türüyle eşleşmiyorsa Azure Databricks UC_POLICY_TYPE_OPTIONS_MISMATCH oluşturur.

Örnekler

Aşağıdaki örnek bir sütun maskesi ilkesi oluşturur:

> 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 hasTag('ssn') AS ssn
    ON COLUMN ssn
    USING COLUMNS (4);

Aşağıdaki örnek bir satır filtresi ilkesi oluşturur:

> 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 hasTagValue('sensitivity', 'high')
    MATCH COLUMNS hasTag('geo_region') AS region
    USING COLUMNS (region);