Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
COLUMN
Gilt für:
Databricks SQL
Databricks Runtime 12.2 LTS und höher
Nur Unity Catalog
Gibt eine Funktion an, die auf eine Spalte angewandt wird, wenn Zeilen aus der Tabelle abgerufen werden. Alle nachfolgenden Abfragen dieser Spalte erhalten das Ergebnis der Auswertung dieser Funktion anstelle des ursprünglichen Werts der Spalte. Dies kann für eine präzise Zugriffssteuerung nützlich sein, bei der die Funktion die Identität oder Gruppenmitgliedschaft der aufrufenden Benutzenden überprüfen kann, um zu bestimmen, ob der Wert zurückgezogen werden soll.
Sie können Spaltenformate hinzufügen, wenn Sie:
- Erstellen Sie eine Tabelle mit CREATE TABLE.
- Hinzufügen von Spalten zu einer Tabelle mit ALTER TABLE ... ADD COLUMN.
- Ändern einer Spalte mit ALTER TABLE ... ALTER COLUMN.
Wichtig
Die Maske wird angewandt, wenn Zeilen aus der Datenquelle abgerufen werden. Alle Ausdrücke, Prädikate oder Sortierungen werden nach der Maskierung angewandt. Beim Verknüpfen zwischen der maskierten Spalte und einer anderen Spalte aus einer anderen Tabelle werden die maskierten Werte beispielsweise für den Verknüpfungsvergleich verwendet.
Weitere Informationen zur Verwendung von Spaltenmasken finden Sie in Azure Databricks-Tabellen.
Syntax
MASK func_name [ USING COLUMNS ( other_column_name | constant_literal [, ...] ) ]
Parameter
-
Eine skalare SQL-UDF mit mindestens einem Parameter.
Der erste Parameter der SQL-UDF wird 1:1 der maskierten Spalte zugeordnet. Der Typ der maskierten Spalte muss in den SQL-UDF-Parametertyp umgewandelt werden können. Wenn
func_nameweitere Parameter erfordert, müssen die Argumente von derUSING COLUMNS-Klausel bereitgestellt werden.Der Rückgabetyp der Funktion muss in den Datentyp der maskierten Spalte umgewandelt werden können.
-
Gibt optional zusätzliche Spalten der Tabelle mit der maskierten Spalte an, die an
func_nameübergeben werden sollen. Jedeother_column_namemuss in den entsprechenden Parameter vonfunc_namekonvertiert werden können.Verwenden Sie eine Spaltenmaske, um den Wert
column_identifierselektiv zu anonymisieren, basierend auf den Benutzer*innen, die eine Abfrage vontable_nameausführen, dem Wert voncolumn_identifierund den optionalenother_column-Werten. constant_literal
Gibt einen Konstantenparameter an, dessen Typ einem Funktionsparameter entspricht. Die folgenden Typen werden unterstützt:
STRING, numerisch (INTEGER,FLOAT,DOUBLE,DECIMAL…),BOOLEAN,INTERVAL,NULL.
Beispiele
Weitere Beispiele finden Sie in Azure Databricks-Tabellen.
-- 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