Oszlop mask
záradék
A következőkre vonatkozik: Databricks SQL Databricks Runtime 12.2 LTS és a Unity Catalog felett csak
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el.
Egy oszlopra alkalmazott függvényt ad meg, amikor sorokat szeretne lekérni a táblából. Az oszlop minden jövőbeli 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, amelyek során a függvény megvizsgálhatja a meghívó felhasználó identitását vagy csoporttagságát, hogy eldöntse, újra ki kívánja-e használni az értéket.
Oszlopmaszkokat akkor vehet fel, ha:
- Tábla létrehozása a CREATE TABLE használatával.
- Oszlopok hozzáadása táblázathoz ALTER TABLE ... OSZLOP HOZZÁADÁSA.
- Oszlop módosítása AZ ALTER TABLE ...-val OSZLOP MÓDOSÍTÁSA.
Fontos
A maszkot a rendszer azonnal alkalmazza, amint minden sor lekéri az adatforrásból. A maszkolás után a rendszer minden kifejezést, predikátumot vagy rendezést alkalmaz. 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.
Az oszlopmaszkok használatáról további információt a bizalmas táblázatadatok szűrése sorszűrők és oszlopmaszkok használatával című témakörben talál.
Syntax
MASK func_name [ USING COLUMNS ( other_column_name [, ...] ) ]
Paraméterek
-
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éterre van szükség, az argumentumokat aUSING COLUMNS
záradéknak kell megadnia.A függvény visszatérési típusának a maszkolt oszlop adattípusára kell öntöttnek lennie.
-
Opcionálisan megadja a maszkolt oszlop táblájának további oszlopait is, amelyeket át szeretne adni.
func_name
Mindegyiknekother_column_name
a megfelelő paraméterrefunc_name
öntöttnek kell lennie.Oszlopmaszk használatával szelektíven anonimizálhatja a lekérdezést
table_name
végrehajtó felhasználó, az értékcolumn_identifier
és az opcionálisother_column
értékcolumn_identifier
alapján.
Példák
A bizalmas táblaadatok szűrése sorszűrőkkel és oszlopmaszkokkal további példákat is találhat.
-- 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