

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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à.

# Gestione del controllo degli accessi nel catalogo di autorizzazioni federate di Amazon Redshift
<a name="federated-permissions-managing-access"></a>

Con le autorizzazioni federate di Amazon Redshift, gli utenti possono definire controlli di accesso sia a grana grossa che a grana fine da qualsiasi magazzino Redshift nel. Account AWS Le autorizzazioni granulari gestiscono l'accesso a tabelle, viste e oggetti del database, incluse le autorizzazioni con ambito, mentre i controlli granulari consentono privilegi a livello di colonna e l'applicazione di politiche di sicurezza come la sicurezza a livello di riga (RLS) e il mascheramento dinamico dei dati (DDM).

## Concedi/Revoca
<a name="federated-permissions-managing-access-grant-revoke"></a>

Con le autorizzazioni federate, puoi definire le autorizzazioni per gli accessi a livello di tabella, come l'accesso alla lettura e alla scrittura di dati in tabelle e viste nel database Redshift Federated Permissions da qualsiasi magazzino Redshift.

```
GRANT SELECT ON "sales_db@finance-catalog".sales_schema.sales_table TO "IAMR:sales_analyst";  

GRANT INSERT ON "sales_db@finance-catalog".sales_schema.sales_view TO "IAMR:sales_data_engineer";  

REVOKE UPDATE ON "sales_db@finance-catalog".sales_schema.us_sales_view FROM "IAMR:us_sales_analyst";  

REVOKE DELETE ON "sales_db@finance-catalog".sales_schema.us_sales_view FROM "IAMR:us_sales_analyst";
```

Le autorizzazioni federate di Amazon Redshift supportano le autorizzazioni con ambito per consentire di concedere o revocare autorizzazioni su tutti gli oggetti di un tipo all'interno di un database o di uno schema.

```
GRANT SELECT FOR TABLES IN SCHEMA "sales_db@finance-catalog".sales_schema TO "IAMR:sales_manager";  

REVOKE UPDATE FOR TABLES IN SCHEMA sales_schmea DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";
```

Puoi definire la concessione o la revoca delle autorizzazioni di accesso al database.

```
GRANT CREATE ON DATABASE "sales_db@finance-catalog" TO "IAMR:sales_admin";  

REVOKE TEMP ON DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";
```

Per ulteriori informazioni sulla sintassi di concessione supportata dalle autorizzazioni federate di Amazon Redshift, consulta. [Autorizzazioni che puoi concedere sul catalogo di autorizzazioni federate di Amazon Redshift](#federated-permissions-managing-access-grant-allowed)

## Controllo granulare degli accessi
<a name="federated-permissions-managing-access-fgac"></a>

Puoi definire un controllo granulare degli accessi sui dati sensibili utilizzando il controllo degli accessi a livello di colonna, la sicurezza a livello di riga (RLS) e il mascheramento dinamico dei dati (DDM) in un database con autorizzazioni federative di Amazon Redshift. Il controllo degli accessi a livello di colonna consente di definire privilegi di accesso a livello di colonna più dettagliati su tabelle e viste. I superutenti e gli utenti o i ruoli con il `sys:secadmin` ruolo nel database possono creare politiche RLS e DDM, associare queste politiche a relazioni specifiche e abilitare RLS su una relazione.

### Controllo degli accessi a livello di colonna:
<a name="federated-permissions-managing-access-column"></a>

È possibile concedere o revocare privilegi specifici su singole colonne di una tabella o di una vista.

```
GRANT SELECT ON "sales_db@finance-catalog".sales_schema.sales_table(order_number, sales_date, purchase_amount, sale_amount) TO "IAMR:sales_revenue_analyst";  

REVOKE UPDATE ON "sales_db@finance-catalog".sales_schema.us_sales_view(order_number, sales_date, purchase_amount, sale_amount) FROM "IAMR:sales_revenue_analyst";
```

### Sicurezza a livello di riga (RLS):
<a name="federated-permissions-managing-access-row"></a>

È possibile attivare o disattivare la sicurezza a livello di riga per una relazione.

```
ALTER TABLE "sales_db@finance-catalog".sales_schema.sales_table ROW LEVEL SECURITY ON;
```

È possibile creare, modificare, eliminare la politica RLS sul database.

```
-- Create an RLS policy  
CREATE RLS POLICY "sales_db@finance-catalog".policy_america  
WITH (region VARCHAR(10))   
USING (region = 'USA');  

-- Alter an RLS policy  
ALTER RLS POLICY "sales_db@finance-catalog".policy_america  
USING (region IN ('USA', 'CANADA', 'Mexico'));  

-- Drop an RLS policy  
DROP RLS POLICY "sales_db@finance-catalog".policy_america;
```

È possibile allegare o scollegare una politica RLS su una relazione.

```
-- Attach an RLS policy  
ATTACH RLS POLICY "sales_db@finance-catalog".policy_america  
ON "sales_db@finance-catalog".sales_schema.sales_table  
TO "IAMR:america_sales_analyst";  

-- Detach an RLS policy  
DETACH RLS POLICY "sales_db@finance-catalog".policy_america  
ON "sales_db@finance-catalog".sales_schema.sales_view_america  
FROM "IAMR:global_sales_analyst";
```

### Mascheramento dinamico dei dati (DDM):
<a name="federated-permissions-managing-access-ddm"></a>

È possibile creare, modificare e eliminare la politica di mascheramento sul database.

```
-- Create a masking policy  
CREATE MASKING POLICY "sales_db@finance-catalog".hash_credit  
WITH (credit_card varchar(256))  
USING (sha2(credit_card + 'testSalt', 256));  

-- Alter an masking policy  
ALTER MASKING POLICY "sales_db@finance-catalog".hash_credit  
USING (sha2(credit_card + 'otherTestSalt', 256));  

-- Drop an masking policy  
DROP MASKING POLICY "sales_db@finance-catalog".hash_credit;
```

È possibile allegare o scollegare una politica di mascheramento su una relazione.

```
-- Attach a masking policy  
 ATTACH MASKING POLICY hash_credit  
ON "sales_db@finance-catalog".sales_schema.transaction_table (credit_card)  
TO "IAMR:sales_analyst" PRIORITY 30;   

-- Detach a masking policy  
DETACH MASKING POLICY hash_credit  
ON "sales_db@finance-catalog".sales_schema.transaction_view (credit_card)  
FROM "IAMR:transaction_analyst";
```

Un superutente o un utente con il `sys:secadmin` privilegio può visualizzare le politiche RLS e DDM, nonché i relativi allegati, su una relazione con autorizzazioni federate, utilizzando il comando. [MOSTRA LE POLITICHE](r_SHOW_POLICIES.md)

**Nota**  
Le funzioni definite dall'utente (UDF) nelle definizioni delle policy RLS e DDM non sono supportate con le autorizzazioni federate di Amazon Redshift.
Le funzioni SQL di Redshift user\_is\_member\_of, role\_is\_member\_of, user\_is\_member\_of\_role non sono supportate con le autorizzazioni federate di Amazon Redshift.

### Autorizzazioni che puoi concedere sul catalogo di autorizzazioni federate di Amazon Redshift
<a name="federated-permissions-managing-access-grant-allowed"></a>

Istruzioni SQL per supportare la gestione delle autorizzazioni sui database con autorizzazione federata Amazon Redshift su risorse a diversi livelli di granularità. La sintassi supporta sia i riferimenti alle tabelle locali (quando è connessa al database contenente la risorsa o quando il database di origine è in USE) sia i riferimenti interdatabase completamente qualificati.

**Nota**
+ {{username}}può fare riferimento a un utente IAM, a un ruolo IAM o a un utente IDC ()AWS IAM Identity Center.
+ {{role\_name}}può fare riferimento a un gruppo IdC. I gruppi IAM non sono supportati.

#### Autorizzazioni granulari
<a name="federated-permissions-managing-access-grant-allowed-coarse"></a>

```
GRANT { SELECT | INSERT | UPDATE | DELETE | TRUNCATE} ON   
[ TABLE ] { table_name | database@catalog.schema_name.table_name }  
TO { username | ROLE role_name | PUBLIC }  

REVOKE { SELECT | INSERT | UPDATE | DELETE | TRUNCATE } ON  
[ TABLE ] { table_name | database@catalog.schema_name.table_name }   
FROM { username | ROLE role_name | PUBLIC }
```

#### Privilegi a livello di colonna
<a name="federated-permissions-managing-access-grant-allowed-column"></a>

```
GRANT { { SELECT | UPDATE | DELETE }   
( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }  
ON { table_name | database@catalog.schema_name.table_name }  
TO { username | ROLE role_name | PUBLIC }  

REVOKE { { SELECT | UPDATE | DELETE }   
( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }  
ON { table_name | database@catalog.schema_name.table_name }  
FROM { username | ROLE role_name | PUBLIC }
```

### Autorizzazioni con ambito
<a name="federated-permissions-managing-access-scoped"></a>

```
GRANT { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }  
FOR SCHEMAS IN  
DATABASE {{database@catalog}}   
TO { {{username}} [ WITH GRANT OPTION ] | ROLE {{role_name}} } [, ...]  

GRANT   
{ { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } }  
FOR TABLES IN  
{ SCHEMA {{schema_name}} [DATABASE {{database@catalog}} ] | DATABASE {{database@catalog}} }  
TO { {{username}} [ WITH GRANT OPTION ] | ROLE {{role_name}} } [, ...]  

REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }   
FOR SCHEMAS IN   
DATABASE {{database@catalog}}   
FROM { {{username}} | ROLE {{role_name}} } [, ...]   

REVOKE [ GRANT OPTION ] { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } }   
FOR TABLES IN   
{ SCHEMA {{schema_name}} [ DATABASE {{database@catalog}} ] | DATABASE {{database@catalog}} }   
FROM { {{username}} | ROLE {{role_name}} } [, ...]
```