Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Clausola colonna
Si applica a: Databricks SQL
Databricks Runtime 12.2 LTS e versioni successive
solo al catalogo Unity ![]()
Specifica una funzione applicata a una colonna ogni volta che vengono recuperate righe dalla tabella. Tutte le query successive di tale colonna ricevono il risultato della valutazione della funzione applicata alla colonna al posto del valore originale della colonna. Ciò può essere utile per scopi di controllo di accesso con granularità fine, in cui la funzione può esaminare l'identità o le appartenenze a gruppi dell'utente che richiama per decidere se revisionare il valore.
È possibile aggiungere maschere di colonna quando:
- Creare una tabella usando CREATE TABLE.
- Aggiungere colonne a una tabella con ALTER TABLE ... ADD COLUMN.
- Modificare una colonna con ALTER TABLE ... ALTER COLUMN.
Importante
Il mascheramento viene applicato non appena ogni riga viene recuperata dall'origine dati. Tutte le espressioni, i predicati o l'ordinamento vengono applicati dopo il mascheramento. Ad esempio, l'unione tra la colonna mascherata e un'altra colonna di un'altra tabella userà i valori mascherati per il confronto del congiungimento.
Per altre informazioni su come usare le maschere di colonna, vedere Tabelle di Azure Databricks.
Sintassi
MASK func_name [ USING COLUMNS ( other_column_name | constant_literal [, ...] ) ]
Parametri
-
Una UDF scalare di SQL con almeno un parametro.
Il primo parametro della funzione UDF SQL mappa 1:1 con la colonna mascherata. Il tipo della colonna mascherata deve essere convertibile tramite cast al tipo di parametro della funzione definita dall'utente SQL. Se
func_namerichiede più parametri, gli argomenti devono essere forniti dalla clausolaUSING COLUMNS.Il tipo restituito della funzione deve essere convertibile al tipo di dati della colonna mascherata.
-
Facoltativamente, specifica colonne aggiuntive della tabella della colonna mascherata da passare a
func_name. Ogniother_column_namedeve essere assegnabile al parametro corrispondente difunc_name.Usare un mascheramento di colonna per rendere anonimo in modo selettivo il valore di
column_identifierin base all'utente che esegue una query sutable_name, il valore dicolumn_identifiere l'oggetto facoltativoother_column. constant_literal
Specifica un parametro costante con il tipo corrispondente a un parametro di funzione. Sono supportati i seguenti tipi:
STRING, numerico (INTEGER,FLOAT,DOUBLE,DECIMAL...) ,BOOLEAN,INTERVAL,NULL.
Esempi
Altri esempi sono disponibili nelle tabelle di 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