İ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. Politikalar satır filtreleri, sütun maskeleri veya ABAC GRANT politikaları olabilir. Satır filtreleri ve sütun maskeleri kataloglara, şemalara veya tablolara uygulanır ve Databricks Runtime 16.4 ve üzerindedir. ABAC GRANT politikaları kataloglara veya şemalara uygulanır ve hedefledikleri temenkul varlıklara dinamik olarak ayrıcalıklar tanır. İ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 .

SQL ile bir ABAC GRANT politikası oluşturmak, değiştirmek veya kaldırmak için Databricks Runtime 18 LTS veya daha fazlası gereklidir. SQL depolarında destek, deponun yayın kanalına bağlıdır. Bkz . İşlem gereksinimleri.

Not

Databricks Runtime 18, Databricks Runtime 18.0, 18.1 ve 18.2'den daha yenidir. Daha önce daha sonraki numaralı bir sürümle sunulacak olan özellikler, artık bunun yerine Databricks Runtime 18 için tarih bazlı güncellemeler olarak sunuluyor. Ayrıntılar için bkz. Birleşik sürüm notları hakkında.

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

Satır filtresi ve sütun maskesi politikaları bir katalog, şema veya tablo üzerinde tanımlanabilir. GRANT Politikalar yalnızca bir katalog veya şema üzerinde tanımlanabilir.

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

  • ayrıcalık

    Poliçeye grant_policy_bodyuygun her temenkul teminatlı üzerinde verilmesi için bir ayrıcalık. Geçerli ayrıcalıklar grant_target_type. Desteklenen güvenlikli türler ve ayrıcalıklar bölümine bakınız.

  • grant_target_type

    grant_policy_bodyVerilen ayrıcalıklar hangi tür teminatlı teminatlının geçerli olduğunu belirtir. Çoğul biçimini kullanın: MODELS, MODEL SERVICES, MODEL PROVIDER SERVICES, MCP SERVICES, , veya AGENT SERVICES. Alt çizgili form, örneğin MODEL_SERVICES, kabul edilir. Birim biçimler kabul edilmez.

  • principal

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

  • Durum

    WHEN Politikanın uygulanıp uygulanmayacağını belirleyen bir boolean ifadesidir; bu, güvenlik aracının etiketlerine, sorgulayan kullanıcının kimlik özelliklerine ve/veya talebin bağlamına dayanır.

    MATCH COLUMNS sütunları etiketlerine göre eşleştiren bir boolean ifadesidir (örneğin, has_tag('pii')).

    Koşullar kontrol düzlemi tarafından değerlendirilir. Aşağıdaki işlevler koşullarda desteklenir:

    • Etiket fonksiyonları (has_tag() ve has_tag_value()): hem WHEN de MATCH COLUMNS. Kullanıldığında WHEN, doğrudan tabloda belirlenen veya ana katalog veya şemadan miras alınan etiketleri kontrol ederler. 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.
    • Kimlik öznitelik fonksiyonları (has_identity_attribute_value() ve has_identity_attribute_tag_match()): sütun maskesi politikalarının maddelerinde desteklenir WHEN ; burada sorguyu çalıştıran kullanıcının kimlik nitelikleri değerlendirilir. GRANT Bunlar desteklenmiyor, DENY politikalar veya MATCH COLUMNS. Sorgulayan kullanıcının özelliklerine göre bir sütunu maske edin.
    • Bağlam öznitelik fonksiyonları (has_context_attribute() ve has_context_attribute_value()): satır filtresi ve sütun maskesi politikalarının maddesinde desteklenir WHEN ; burada çağrı uygulaması gibi isteğin bağlamını değerlendirirler. Desteklenmiyorlar MATCH COLUMNS. Bkz. Kullanıcı adına hareket eden harici ajanların erişimini kısıtla.

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

Aşağıdaki örnek, Anthropic tarafından oluşturulan her model hizmete izin veren bir ABAC GRANT politikası EXECUTE oluşturur:

> 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');