Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sütun
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime 12.2 LTS ve üzeri
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:
- CREATE TABLEkullanarak bir tablo oluşturun.
- ALTER TABLE ile tabloya sütun ekleme ... ADD COLUMN.
- sütunu ALTER TABLE ile değiştirme ... ALTER COLUMN.
Ö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
-
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ümanlarUSING 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.
-
İ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öreother_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
-- 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