Olvasás angol nyelven

Megosztás a következőn keresztül:


Oszlop mask klauzula

A következőkre vonatkozik:pipa jelöléssel igen Databricks SQL pipa jelöléssel igen Databricks Runtime 12.2 LTS és újabb pipa jelöléssel igen kizárólag a Unity Catalog esetén

Azon oszlopra alkalmazott függvényt ad meg, amely az táblából történő sorok lekérdezésekor érvényesül. Az oszlop minden további lekérdezése megkapja a függvény kiértékelésének eredményét az oszlopon az oszlop eredeti értéke helyett. Ez hasznos lehet részletes hozzáférés-vezérlési célokra, ahol a függvény megvizsgálhatja az invokáló felhasználó identitását vagy csoporttagságát annak megállapításához, hogy az értéket újra kívánja-e használni.

Oszlopmaszkokat akkor vehet fel, ha:

Fontos

A maszkot a rendszer azonnal alkalmazza, amint minden sort lekért az adatforrásból. Maszkolás után minden kifejezést, predikátumot és rendezést alkalmazunk. Ha például a maszkolt oszlop egy másik oszlophoz csatlakozik egy másik táblából, akkor a maszkolt értékeket fogja használni az illesztés összehasonlításához.

További információ az oszlopmaszkok használatáról: Bizalmas táblázatadatok szűrése sorszűrők és oszlopmaszkok használatával.

Szintaxis

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

Paraméterek

  • func_name

    Skaláris SQL UDF legalább egy paraméterrel.

    Az SQL UDF első paramétere 1:1-et képez le a maszkolt oszlopmal. A maszkolt oszlop típusának az SQL UDF paramétertípusára kell átírhatónak lennie. Ha func_name több paramétert igényel, az argumentumokat a USING COLUMNS záradéknak kell megadnia.

    A függvény visszatérési típusának átalakíthatónak kell lennie a maszkolt oszlop adattípusára.

  • egyéb_oszlop_név

    Opcionálisan megadhat további oszlopokat a maszkolt oszlop táblájából, amelyeket át kell adni func_name-nak. Mindegyik other_column_name-nak cast-olhatónak kell lennie a megfelelő func_name paraméterre.

    Oszlopmaszk használatával szelektíven anonimizálhatja a column_identifier értékét attól függően, hogy a felhasználó lekérdezést hajt végre a table_name, a column_identifier értéke és az opcionális other_columnalapján.

  • constant_literal

    Állandó paramétert ad meg egy függvényparaméternek megfelelő típussal. A következő típusok támogatottak: STRING, numerikus (INTEGER, FLOAT,DOUBLE, DECIMAL ...), BOOLEAN, INTERVAL, NULL.

Példák

További példákat találhat az Érzékeny táblaadatok szűrése sorszűrők és oszlopmaszkok használatávalrészben.

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