Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Oszlop
A következőkre vonatkozik: Databricks SQL
Databricks Runtime 12.2 LTS és újabb
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:
- Tábla létrehozása CREATE TABLEhasználatával.
- Oszlopok hozzáadása egy táblához ALTER TABLE... ADD COLUMN.
- Az oszlop módosítása ALTER TABLE... ALTER COLUMN.
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.
MASK func_name [ USING COLUMNS ( other_column_name | constant_literal [, ...] ) ]
-
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 aUSING 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.
-
Opcionálisan megadhat további oszlopokat a maszkolt oszlop táblájából, amelyeket át kell adni
func_name
-nak. Mindegyikother_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 atable_name
, acolumn_identifier
értéke és az opcionálisother_column
alapjá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
.
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