Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cláusula de
Se aplica a:
Databricks SQL
Databricks Runtime 12.2 LTS y superior
Solo Unity Catalog
Especifica una función que se aplica a una columna cada vez que se capturan filas de la tabla. Todas las consultas posteriores de esa columna reciben el resultado de evaluar esa función sobre la columna en lugar del valor original de la columna. Esto puede ser útil para fines de control de acceso específicos en los que la función puede inspeccionar la identidad o las pertenencias a grupos del usuario que realiza la invocación, para así determinar si oculta el valor.
Puede agregar máscaras de columna cuando:
- Cree una tabla mediante CREATE TABLE.
- Agregar columnas a una tabla con ALTER TABLE ... AGREGUE COLUMN.
- Modificar una columna con ALTER TABLE ... ALTER COLUMN.
Importante
La máscara se aplica en cuanto se captura cada fila del origen de datos. Las expresiones, predicados u ordenación se aplican después del enmascaramiento. Por ejemplo, la combinación entre la columna enmascarada en otra columna de otra tabla usará los valores enmascarados para la comparación de combinación.
Para más información sobre cómo usar máscaras de columna, consulte Tablas de Azure Databricks.
Sintaxis
MASK func_name [ USING COLUMNS ( other_column_name | constant_literal [, ...] ) ]
Parámetros
-
Una UDF de SQL escalar con al menos un parámetro.
El primer parámetro de la UDF de SQL se asigna 1:1 con la columna enmascarada. El tipo de columna enmascarada debe ser convertible al tipo de parámetro UDF de SQL. Si
func_namerequiere más parámetros, la cláusulaUSING COLUMNSdebe proporcionar argumentos.El tipo de valor devuelto de la función debe convertirse al tipo de datos de la columna enmascarada.
-
Opcionalmente, especifica columnas adicionales de la tabla de la columna enmascarada que se va a pasar a
func_name. Cadaother_column_namedebe convertirse al parámetro correspondiente defunc_name.Use una máscara de columna para anonimizar selectivamente el valor de
column_identifieren función del usuario que ejecuta una consulta entable_name, el valor decolumn_identifiery losother_columnopcionales. constant_literal
Especifica un parámetro de constante con el tipo que coincide con un parámetro de función. Se admiten los siguientes tipos:
STRING, numérico (INTEGER,FLOAT,DOUBLE,DECIMAL....),BOOLEAN,INTERVAL,NULL.
Ejemplos
Puede encontrar más ejemplos en tablas de Azure Databricks.
-- 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