Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Limitazioni del filtraggio dei dati
Quando concedi le autorizzazioni di Lake Formation su una tabella Data Catalog, puoi includere specifiche di filtraggio dei dati per limitare l'accesso a determinati dati nei risultati delle query e nei motori integrati con Lake Formation. Lake Formation utilizza il filtraggio dei dati per ottenere la sicurezza a livello di colonna, la sicurezza a livello di riga e la sicurezza a livello di cella. Puoi definire e applicare filtri di dati sulle colonne nidificate se i dati di origine contengono strutture nidificate.
Note e restrizioni per il filtraggio a livello di colonna
Esistono tre modi per specificare il filtraggio delle colonne:
-
Utilizzando filtri di dati
-
Utilizzando un semplice filtraggio a colonne o un filtraggio a colonne annidate.
-
Utilizzando. TAGs
Il semplice filtraggio delle colonne specifica solo un elenco di colonne da includere o escludere. Sia la console Lake Formation che laAPI, AWS CLI supportano il semplice filtraggio delle colonne. Per vedere un esempio, consulta Grant with Simple Column Filtering.
Le seguenti note e restrizioni si applicano al filtraggio delle colonne:
-
AWS Glue ETLjobs non supporta il filtraggio delle colonne. Il processo ha esito negativo se il filtraggio delle colonne viene applicato a qualsiasi tabella a cui il lavoro fa riferimento.
-
Per concedere
SELECT
con l'opzione di concessione e il filtro delle colonne, è necessario utilizzare un elenco di inclusione, non un elenco di esclusione. Senza l'opzione di concessione, è possibile utilizzare elenchi di inclusione o esclusione. -
Per concedere
SELECT
su una tabella con filtro a colonne, devi aver ottenuto l'autorizzazioneSELECT
sulla tabella con l'opzione di concessione e senza alcuna restrizione di riga. Devi avere accesso a tutte le righe. -
Se
SELECT
concedi l'opzione di concessione e il filtraggio delle colonne a un principale del tuo account, tale principale deve specificare il filtraggio delle colonne per le stesse colonne o per un sottoinsieme delle colonne concesse quando concede a un altro principale. Se concedi l'opzioneSELECT
di concessione e il filtraggio delle colonne a un account esterno, l'amministratore del data lake dell'account esterno può concedereSELECT
tutte le colonne a un altro responsabile del proprio account. Tuttavia, anche seSELECT
su tutte le colonne, tale principale avrà visibilità solo sulle colonne concesse all'account esterno. -
Non è possibile applicare il filtraggio delle colonne sulle chiavi di partizione.
-
A un principale con l'
SELECT
autorizzazione su un sottoinsieme di colonne di una tabella non può essere concessa l'INSERT
autorizzazioneALTER
,,DROP
DELETE
, o per quella tabella. Per un'entità principale con l'INSERT
autorizzazioneALTER
,DROP
DELETE
, o su una tabella, se si concede l'SELECT
autorizzazione con il filtro delle colonne, l'autorizzazione non ha alcun effetto.
Le note e le restrizioni seguenti si applicano al filtraggio delle colonne annidate:
-
È possibile includere o escludere cinque livelli di campi nidificati in un filtro dati.
Col1.Col1_1.Col1_1_1.Col1_1_1_1.Col1_1_1_1_1_1
-
Non è possibile applicare il filtraggio delle colonne ai campi annidati all'interno delle colonne delle partizioni.
-
Se lo schema della tabella contiene un nome di colonna di primo livello («cliente»).» address») che presenta lo stesso schema di rappresentazione di un campo nidificato all'interno di un filtro dati (una colonna nidificata con un nome di colonna di primo livello
customer
e un nome di campo nidificatoaddress
viene specificata come"customer"."address"
in un filtro dati), non è possibile specificare in modo esplicito l'accesso alla colonna di primo livello o al campo nidificato perché entrambi sono rappresentati utilizzando lo stesso modello negli elenchi di inclusione/esclusione. Questo è ambiguo e Lake Formation non può risolvere se stai specificando la colonna di primo livello o il campo annidato. -
Se una colonna di primo livello o un campo nidificato contiene una doppia virgoletta all'interno del nome, devi includere una seconda virgoletta quando specifichi l'accesso a un campo nidificato all'interno dell'elenco di inclusione ed esclusione di un filtro di celle di dati.
Esempio di nome di colonna nidificata con virgolette doppie:
a.b.double"quote
Esempio di rappresentazione di una colonna annidata all'interno di un filtro dati:
"a"."b"."double""quote"
Limitazioni del filtraggio a livello di cella
Tieni presente le seguenti note e restrizioni per il filtraggio a livello di riga e di cella.
-
La sicurezza a livello di cella non è supportata nelle colonne annidate, nelle viste e nei link alle risorse.
-
Tutte le espressioni supportate nelle colonne di primo livello sono supportate anche nelle colonne nidificate. Tuttavia, è necessario fare riferimento ai campi nidificati nelle colonne di partizione quando si definiscono NOTespressioni nidificate a livello di riga.
-
La sicurezza a livello di cella è disponibile in tutte le regioni quando si utilizza la versione 3 del motore Athena o Amazon Redshift Spectrum. Per altri servizi, la sicurezza a livello di cella è disponibile solo nelle regioni menzionate in. Regioni supportate
-
Le istruzioni
SELECT INTO
non sono supportate. -
I
array
tipi dimap
dati e non sono supportati nelle espressioni di filtro di riga. Il tipo distruct
dati è supportato. -
Non esiste un limite al numero di filtri di dati che possono essere definiti in una tabella, ma esiste un limite di 100
SELECT
autorizzazioni di filtro dei dati per un singolo principale su una tabella. -
Il numero massimo di filtri di dati che possono essere inclusi in una concessione su una tabella è 100.
-
Per applicare un filtro dati con un'espressione di filtro di riga, è necessario disporre
SELECT
dell'opzione grant su tutte le colonne della tabella. Questa restrizione non si applica agli amministratori degli account esterni quando la concessione è stata concessa all'account esterno. -
Se un principale è membro di un gruppo e sia al principale che al gruppo vengono concesse le autorizzazioni su un sottoinsieme di righe, i permessi di riga effettivi del principale sono l'unione dei permessi del principale e dei permessi del gruppo.
-
I seguenti nomi di colonna sono limitati in una tabella per il filtraggio a livello di riga e di cella:
ctid
oid
xmin
cmin
xmax
cmax
tableoide
inserire xid
elimina xid
importoide
ID univoco per gatti rossi
-
Se si applica l'espressione di filtro composta da tutte le righe su una tabella contemporaneamente ad altre espressioni di filtro con predicati, l'espressione composta da tutte le righe prevarrà su tutte le altre espressioni di filtro.
-
Quando le autorizzazioni su un sottoinsieme di righe vengono concesse a un AWS account esterno e l'amministratore del data lake dell'account esterno concede tali autorizzazioni a un principale in quell'account, il predicato di filtro effettivo del principale è l'intersezione tra il predicato dell'account e qualsiasi predicato concesso direttamente al principale.
Ad esempio, se l'account dispone delle autorizzazioni di riga con il predicato
dept='hr'
e al principale è stata concessa separatamente l'autorizzazione percountry='us'
, l'account principale ha accesso solo alle righe condept='hr'
ecountry='us'
.
Per ulteriori informazioni sul filtraggio a livello di cella, vedere. Filtraggio dei dati e sicurezza a livello di cella in Lake Formation