Aracılığıyla paylaş


Sütun mask ifadesi

Şunlar için geçerlidir:işaretlenmiş evet Databricks SQL işaretlenmiş evet Databricks Runtime 12.2 LTS ve üzeri işaretlenmiş evet yalnızca 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. İşlevin, kendisini çağıran kullanıcının kimliğini veya grup üyeliklerini inceleyerek değeri gizleyip gizlemeyeceğine karar verebildiği ince detaylı erişim kontrolü amaçları için bu yararlı olabilir.

Şu durumlarda sütun maskeleri ekleyebilirsiniz:

Önemli

Her satır veri kaynağından getirildiğinde maske 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. func_name daha fazla parametre gerektiriyorsa, argümanlar USING COLUMNS yan tümce ile sağlanmalıdır.

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

  • diğer_sütun_adı

    İsteğe bağlı olarak, maskelenmiş sütunun tablosundan func_name'a geçirilecek ek sütunları belirtir. other_column_name her biri, func_name'in karşılık gelen parametresine atanabilir olmalıdır.

    column_identifier değeri üzerinde sorgu yürüten kullanıcıya, table_name ve isteğe bağlı column_identifier değerine göre other_column değerini seçici bir şekilde anonimleştirmek 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, FLOAT,DOUBLE , DECIMAL ...), BOOLEAN, INTERVAL, NULL.

Örnekler

satır filtrelerini ve sütun maskelerini kullanarak hassas tablo verilerini filtreleme 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