Aracılığıyla paylaş


Column mask yan tümcesi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Yalnızca Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 12.2 LTS ve üzeri onay işareti evet olarak işaretlenmiş Unity Kataloğu

Tablodan satır getirildiğinde bir sütuna uygulanan bir işlevi belirtir. Bu sütundaki sonraki tüm sorgular, sütunun özgün değeri yerine bu işlevi sütun üzerinde değerlendirmenin sonucunu alır. Bu, işlevin çağrı yapan kullanıcının kimliğini veya grup üyeliklerini inceleyerek değerin yeniden işlem yapıp olmayacağını belirleyebildiği ayrıntılı erişim denetimi amaçları için yararlı olabilir.

Şu durumlarda sütun maskeleri ekleyebilirsiniz:

Önemli

Maske, her satır veri kaynağından getirildiğinde uygulanır. Maskelemeden sonra tüm ifadeler, koşul veya sıralama uygulanır. Örneğin, maskelenmiş sütunu başka bir tablodan başka bir sütuna birleştirmek birleştirme karşılaştırması için maskelenmiş değerleri kullanır.

Sütun maskelerini kullanma hakkında daha fazla bilgi için bkz. Satır filtrelerini ve sütun maskelerini kullanarak hassas tablo verilerini filtreleme.

Sözdizimi

MASK func_name [ USING COLUMNS ( other_column_name | constant_literal [, ...] ) ]

Parametreler

  • func_name

    En az bir parametreye sahip skaler SQL UDF .

    SQL UDF'nin ilk parametresi 1:1'i maskelenmiş sütunla eşler. Maskelenmiş sütunun türü SQL UDF parametre türüne atanabilir olmalıdır. Daha func_name fazla parametre gerekiyorsa, bağımsız değişkenler yan tümcesi USING COLUMNS tarafından sağlanmalıdır.

    İşlevin dönüş türü maskelenmiş sütunun veri türüne atanabilir olmalıdır.

  • other_column_name

    İsteğe bağlı olarak, maskelenmiş sütunun tablosuna geçirecek func_nameek sütunları belirtir. Her other_column_name biri karşılık gelen parametresine func_nameatanabilir olmalıdır.

    üzerinde sorgu table_namecolumn_identifier yürüten kullanıcıya göre değerini column_identifier ve isteğe bağlı other_columndeğerini seçmeli olarak anonim hale getirmek için sütun maskesi kullanın.

  • constant_literal

    Bir işlev parametresiyle eşleşen türe sahip sabit bir parametre belirtir. Aşağıdaki türler desteklenir: STRING, sayısal (INTEGER, DOUBLEFLOAT, , DECIMAL ...), BOOLEAN, INTERVAL, NULL.

Örnekler

Satır filtrelerini ve sütun maskelerini kullanarak hassas tablo verilerini filtreleme bölümünde daha fazla örnek bulabilirsiniz.

-- Create a table with a masked column
> CREATE FUNCTION mask_ssn(ssn STRING) RETURN CASE WHEN is_member('HumanResourceDept') THEN ssn ELSE '***-**-****' END;
> CREATE TABLE persons(name STRING, ssn STRING MASK mask_ssn);
> INSERT INTO persons VALUES('James', '123-45-6789';

-- As a non-member of 'HumanResourceDept'
> SELECT * FROM persons;
  James  ***-**-****

-- As a member of 'HumanResourceDept'
> SELECT * FROM persons;
  James  123-45-6789

-- Create a masking function with multiple parameters. When applied first parameter will be the column that masking function applies to
> CREATE FUNCTION mask_pii_regional(value STRING, region STRING)
  RETURN IF(is_account_group_member(region || '_HumanResourceDept'), value, 'REDACTED');

-- Create a table with a masked column. Masking function first parameter will be the column that is masked.
-- The rest of the parameters should be specified in `USING COLUMNS (<columnList>)` clause
> CREATE TABLE persons(name STRING, address STRING MASK mask_pii_regional USING COLUMNS (region), region STRING);
> INSERT INTO persons('James', '160 Spear St, San Francisco', 'US')

-- As a non-member of 'US_HumanResourceDept'
> SELECT * FROM persons;
  James | REDACTED | US

-- As a member of 'US_HumanResourceDept'
> SELECT * FROM persons;
  James | 160 Spear St, San Francisco | US