İ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: etiketlerine göre güvenli hale getirilebilir değerlerle eşleşen boole ifadesi (örneğin, has_tag('sensitivity')). için MATCH COLUMNS: etiketlerine göre sütunları eşleştiren boole ifadesi (örneğin, has_tag('pii')). 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 has_tag()'tirhas_tag_value(). içinde WHENkullanıldığında, bu işlevler doğrudan tabloda ayarlanan veya üst katalogdan veya şemadan devralınan etiketleri denetler. içinde MATCH COLUMNSkullanıldığında, doğrudan yalnızca sütunda ayarlanan etiketleri denetler. Eski camelCase formları (hasTag, hasTagValue) geriye dönük uyumluluk için çalışmaya devam ediyor. 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 has_tag('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 has_tag_value('sensitivity', 'high')
    MATCH COLUMNS has_tag('geo_region') AS region
    USING COLUMNS (region);