

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

# Condivisione dei dati tra Account AWS
<a name="across-account"></a>

Puoi condividere i dati a scopo di lettura tra Account AWS. La condivisione dei dati tra Account AWS funziona in modo simile alla condivisione dei dati in un account. La differenza è che nella condivisione dei dati tra Account AWSè richiesto un handshake bidirezionale. Gli amministratori di un account producer possono autorizzare gli account consumer ad accedere alle unità di condivisione dati o scegliere di non autorizzare alcun accesso. Per utilizzare una condivisione dati autorizzata, un amministratore dell'account consumer può associare la condivisione dati. L'amministratore può associare il datashare a un intero Account AWS o a cluster specifici nell'account consumer oppure rifiutare il datashare. Per ulteriori informazioni sulla condivisione dei dati all'interno di un account, consultare [Condivisione dell'accesso in lettura ai dati all'interno di un Account AWS](within-account.md).

Un’unità di condivisione dati può avere consumer di dati che sono namespace nello stesso account o in Account AWS diversi. Non è necessario creare unità di condivisione dati separate per la condivisione all'interno di un account e la condivisione tra account.

Per la condivisione dei dati tra account, sia il cluster producer che quello consumer devono essere crittografati.

Quando condividono i dati con Account AWS, gli amministratori dei produttori li condividono come entità. Account AWS Un amministratore consumer può decidere quali namespace nell’account consumer possono ottenere l’accesso a un’unità di condivisione dati.

**Topics**
+ [operazioni dell’amministratore producer](producer-cluster-admin.md)
+ [Operazioni dell'amministratore dell'account consumer](consumer-account-admin.md)
+ [operazioni dell’amministratore consumer](consumer-cluster-admin.md)

# operazioni dell’amministratore producer
<a name="producer-cluster-admin"></a>

Con Amazon Redshift puoi eseguire attività amministrative sui cluster producer per gestire l’importazione dei dati e l’elaborazione dei carichi.

**Se sei un amministratore producer o un proprietario di database**, segui la procedura descritta:

1. Creare unità di condivisione dati nel cluster e aggiungere oggetti di unità di condivisione dati alle unità. Per la procedura dettagliati di come creare unità di condivisione dati e come aggiungere oggetti di unità di condivisione dati alle unità, consultare [Condivisione dell'accesso in lettura ai dati all'interno di un Account AWS](within-account.md). Per informazioni su CREATE DATASHARE e ALTER DATASHARE, consultare [CREARE DATASHARE](r_CREATE_DATASHARE.md) e [ALTER DATASHARE](r_ALTER_DATASHARE.md).

   Nell'esempio seguente vengono aggiunti diversi oggetti di unità di condivisione dati all'unità di condivisione dati `salesshare`.

   ```
   -- Add schema to datashare
   ALTER DATASHARE salesshare ADD SCHEMA PUBLIC;
   
   -- Add table under schema to datashare
   ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift;
   
   -- Add view to datashare 
   ALTER DATASHARE salesshare ADD TABLE public.sales_data_summary_view;
   
   -- Add all existing tables and views under schema to datashare (does not include future table)
   ALTER DATASHARE salesshare ADD ALL TABLES in schema public;
   ```

   Per creare o modificare le unità di condivisione dati è possibile utilizzare anche la console Amazon Redshift. Per ulteriori informazioni, consultare [Creare un’unità di condivisione dati](datashare-creation.md#create-datashare-console) e [Modifica delle unità di condivisione dati create nell'account](manage-datashare-existing-console.md#edit-datashare-console).

1. Delegare le autorizzazioni per operare sull'unità di condivisione dati. Per ulteriori informazioni, consultare [GRANT](r_GRANT.md) o [REVOKE](r_REVOKE.md).

   L'esempio seguente concede le autorizzazioni a `dbuser` su `salesshare`.

   ```
   GRANT ALTER, SHARE ON DATASHARE salesshare TO dbuser;
   ```

   Gli utenti con privilegi avanzati del cluster e i proprietari dell'unità di condivisione dati possono concedere o revocare le autorizzazioni di modifica sull'unità di condivisione dati ad altri utenti.

1. Aggiungere o rimuovere i consumer dalle unità di condivisione dati. L'esempio seguente aggiunge l' Account AWS ID a. `salesshare` Per ulteriori informazioni, consulta [GRANT](r_GRANT.md) o [REVOKE](r_REVOKE.md).

   ```
   GRANT USAGE ON DATASHARE salesshare TO ACCOUNT '123456789012';
   ```

   È possibile concedere le autorizzazioni a un consumer di dati solo in un'istruzione GRANT.

   Gli utenti con privilegi avanzati dei cluster e i proprietari degli oggetti dell'unità di condivisione dati o gli utenti che dispongono dell'autorizzazione SHARE sull'unità di condivisione dati possono aggiungere o rimuovere i consumer da tale unità. Per fare ciò, usano GRANT USAGE o REVOKE USAGE

   È inoltre possibile utilizzare la console Amazon Redshift per aggiungere o rimuovere i consumer di dati dalle unità di condivisione dati. Per ulteriori informazioni, consultare [Aggiungere consumer di dati alle unità di condivisione dati](datashare-creation.md#add-data-consumer-console) e [Rimozione dei consumer di dati dalle unità di condivisione dati](manage-datashare-existing-console.md#remove-data-consumer-console).

1. (Facoltativo) Revoca l'accesso al datashare da Account AWS se non desideri più condividere i dati con i consumatori.

   ```
   REVOKE USAGE ON DATASHARE salesshare FROM ACCOUNT '123456789012';
   ```

**Se si è un amministratore di account producer**, completare la seguente procedura:

Dopo aver concesso l'utilizzo a, lo stato del datashare è Account AWS. `pending_authorization` L'amministratore dell'account producer deve autorizzare le unità di condivisione dati utilizzando la console Amazon Redshift e scegliere i consumer di dati.

Accedi alla [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/). Quindi scegliere quali consumer di dati autorizzare ad accedere alle unità di condivisione dati o da cui rimuovere l'autorizzazione. I consumer di dati autorizzati ricevono notifiche per intraprendere azioni sulle unità di condivisione dati. Se aggiungi un namespace come consumer di dati, non devi eseguire l’autorizzazione. Una volta autorizzati i consumer di dati, questi possono accedere agli oggetti dell'unità di condivisione dati e creare un database consumer per eseguire le query sui dati. Per ulteriori informazioni, consulta [Autorizzazione o rimozione dell'autorizzazione dalle unità di condivisione dati](authorize-datashare-console.md).

## Condivisione delle autorizzazioni di scrittura per i dati tra account
<a name="within-account-multi-warehouse-consumer-associate"></a>

Con Amazon Redshift, puoi condividere dati tra AWS account e concedere autorizzazioni di scrittura, abilitando la collaborazione e la condivisione dei dati tra team o organizzazioni. La condivisione di dati tra account consente di creare un account fornitore di dati che crea e gestisce database, schemi e tabelle, che possono quindi essere condivisi in sicurezza con gli account di consumer di dati. Le seguenti sezioni illustrano il processo di configurazione della condivisione di dati tra account e di concessione dell’accesso in scrittura in Amazon Redshift.

# Operazioni dell'amministratore dell'account consumer
<a name="consumer-account-admin"></a>

Con Amazon Redshift puoi gestire gli account consumer e controllarne l’accesso alle risorse di data warehouse.

**Se si è un amministratore di account consumer**, completare la seguente procedura:

Per associare una o più condivisioni di dati condivise da altri account ai namespace interi Account AWS o specifici del tuo account, usa la console Amazon Redshift.

Accedi alla [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/). Quindi, associa uno o più datashare condivisi da altri account ai namespace interi o specifici del tuo account. Account AWS Per ulteriori informazioni, consulta [Associazione di un datashare da un altro Account AWS in Amazon Redshift](writes-associating.md).

Dopo aver associato i Account AWS o i namespace specifici, i datashare diventano disponibili per l'uso. L'associazione dell'unità di condivisione dati può essere modificata in qualsiasi momento. Quando si modifica l'associazione da un singolo namespace a uno, Amazon Account AWS Redshift sovrascrive i namespace con le informazioni. Account AWS Quando si modifica l'associazione da un namespace Account AWS a uno specifico, Amazon Redshift sovrascrive le informazioni con le informazioni sullo spazio dei Account AWS nomi. Tutti i namespace nell’account ottengono l’accesso ai dati.

# operazioni dell’amministratore consumer
<a name="consumer-cluster-admin"></a>

Con Amazon Redshift puoi eseguire attività amministrative su cluster consumer per gestire l’importazione dei dati e l’elaborazione dei carichi.

**Se sei un amministratore consumer**, segui la procedura descritta:

1. Elencare le unità di condivisione dati rese disponibili e visualizzare il contenuto delle unità di condivisione dati. Il contenuto delle unità di condivisione dati è disponibile solo quando l’amministratore producer ha autorizzato le unità di condivisione dati e l’amministratore consumer ha accettato e associato le unità di condivisione dati. Per ulteriori informazioni, consultare [DESC DATASHARE](r_DESC_DATASHARE.md) e [SHOW DATASHARES](r_SHOW_DATASHARES.md).

   Nell'esempio seguente vengono visualizzate le informazioni relative alle unità di condivisione dati in ingresso di uno spazio dei nomi producer specificato. Quando esegui DESC DATASHARE come amministratore consumer, devi specificare l’opzione NAMESPACE e l’ID account per visualizzare le unità di condivisione dati in entrata. Per le condivisioni di dati in uscita, specificare il nome dell'unità di condivisione dati.

   ```
   SHOW DATASHARES LIKE 'sales%';
   
   share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account |          producer_namespace
   -----------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+---------------------------------------
   salesshare |             |                 |                   | INBOUND    |            |        t            |           | 123456789012    | 'dd8772e1-d792-4fa4-996b-1870577efc0d'
   ```

   ```
   DESC DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d';
   
   
    producer_account |          producer_namespace          | share_type | share_name | object_type |           object_name
   ------------------+--------------------------------------+------------+------------+-------------+---------------------------------
    123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND    | salesshare | table       | public.tickit_users_redshift
    123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND    | salesshare | table       | public.tickit_venue_redshift
    123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND    | salesshare | table       | public.tickit_category_redshift
    123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND    | salesshare | table       | public.tickit_date_redshift
    123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND    | salesshare | table       | public.tickit_event_redshift
    123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND    | salesshare | table       | public.tickit_listing_redshift
    123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND    | salesshare | table       | public.tickit_sales_redshift
    123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND    | salesshare | schema      | public
   (8 rows)
   ```

   Solo gli utenti con privilegi avanzati per il cluster possono completare questa opzione. È possibile utilizzare anche SVV\$1DATASHARES per visualizzare le unità di condivisione dati e SVV\$1DATASHARE\$1OBJECTS per visualizzare gli oggetti all'interno dell'unità di condivisione dati.

   L'esempio seguente mostra le unità di condivisione dati in uscita in un cluster producer.

   ```
   SELECT * FROM SVV_DATASHARES WHERE share_name LIKE 'sales%';
   
   share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account |          producer_namespace
   -----------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+---------------------------------------
   salesshare |             |                 |                   | INBOUND    |            |        t            |           | 123456789012      | 'dd8772e1-d792-4fa4-996b-1870577efc0d'
   ```

   ```
   SELECT * FROM SVV_DATASHARE_OBJECTS WHERE share_name LIKE 'sales%';
    share_type | share_name | object_type |           object_name           | producer_account |          producer_namespace
   ------------+------------+-------------+---------------------------------+------------------+--------------------------------------
    INBOUND    | salesshare | table       | public.tickit_users_redshift    | 123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d
    INBOUND    | salesshare | table       | public.tickit_venue_redshift    | 123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d
    INBOUND    | salesshare | table       | public.tickit_category_redshift | 123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d
    INBOUND    | salesshare | table       | public.tickit_date_redshift     | 123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d
    INBOUND    | salesshare | table       | public.tickit_event_redshift    | 123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d
    INBOUND    | salesshare | table       | public.tickit_listing_redshift  | 123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d
    INBOUND    | salesshare | table       | public.tickit_sales_redshift    | 123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d
    INBOUND    | salesshare | schema      | public                          | 123456789012     | dd8772e1-d792-4fa4-996b-1870577efc0d
   (8 rows)
   ```

1. Creare database locali che fanno riferimento alle unità di condivisione dati. Specificare NAMESPACE e ID account durante la creazione del database dall'unità di condivisione dati. Per ulteriori informazioni, consulta [CREATE DATABASE](r_CREATE_DATABASE.md).

   ```
   CREATE DATABASE sales_db FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d';
   ```

   Se desideri un controllo più granulare sull'accesso agli oggetti nel database locale, utilizza la clausola WITH PERMISSIONS durante la creazione del database. In tal modo puoi assegnare le autorizzazioni per gli oggetti del database nel passaggio 4. 

   ```
   CREATE DATABASE sales_db WITH PERMISSIONS FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d';
   ```

   È possibile visualizzare i database creati dall'unità di condivisione dati eseguendo un query sulla vista [SVV\$1REDSHIFT\$1DATABASE](r_SVV_REDSHIFT_DATABASES.md). Puoi connetterti a questi database direttamente oppure puoi connetterti a un database locale nel cluster consumer ed eseguire query tra i database sui dati dei database dell’unità di condivisione dati. Non è possibile creare una unità di condivisione dati sugli oggetti di database creati da una unità di condivisione dati esistente. Tuttavia, è possibile copiare i dati in una tabella separata nel cluster di consumer, eseguire qualsiasi elaborazione necessaria e quindi condividere i nuovi oggetti creati.

1. (Facoltativo) Creare schemi esterni per fare riferimento e assegnare autorizzazioni granulari a schemi specifici nel database consumer importato nel cluster consumer. Per ulteriori informazioni, consulta [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md).

   ```
   CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE 'sales_db' SCHEMA 'public';
   ```

1. Assegna ai ruoli o agli utenti nel cluster consumer le autorizzazioni per i database e i riferimenti allo schema creati dalle unità di condivisione dati in base alle esigenze. Per ulteriori informazioni, consulta [GRANT](r_GRANT.md) o [REVOKE](r_REVOKE.md).

   ```
   GRANT USAGE ON DATABASE sales_db TO Bob;
   ```

   ```
   GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;
   ```

   Se hai creato il database senza la clausola WITH PERMISSIONS, puoi assegnare agli utenti o ai ruoli solo le autorizzazioni per l'intero database creato dall'unità di condivisione dati. In alcuni casi, sono necessari controlli a grana fine su un sottoinsieme di oggetti di database creati dall'unità di condivisione dati. In tal caso, è possibile creare un riferimento allo schema esterno che punta a schemi specifici nell'unità di condivisione dati come descritto nel passaggio precedente. È quindi possibile fornire autorizzazioni granulari a livello di schema. È inoltre possibile creare viste ad associazione tardiva sugli oggetti condivisi e utilizzarle per assegnare autorizzazioni granulari. È inoltre possibile considerare che i cluster producer creino ulteriori unità di condivisione dati con la granularità richiesta. Puoi definire tutti i riferimenti allo schema di cui hai bisogno per il database creato dall'unità di condivisione dati.

   Se hai creato il database con la clausola WITH PERMISSIONS nel passaggio 2, devi assegnare le autorizzazioni per gli oggetti nel database condiviso. Un utente con solo l'autorizzazione USAGE non può accedere a nessun oggetto in un database creato con la clausola WITH PERMISSIONS finché non ottiene le autorizzazioni aggiuntive a livello di oggetto.

   ```
   GRANT SELECT ON sales_db.public.tickit_sales_redshift to Bob;
   ```

1. Eseguire una query sui dati negli oggetti condivisi nelle unità di condivisione dati.

   Gli utenti e i ruoli con autorizzazioni per i database consumer e gli schemi nei cluster consumer possono esplorare e navigare tra i metadati di qualsiasi oggetto condiviso. Possono inoltre esplorare e navigare tra oggetti locali in un cluster consumer. A tale scopo, utilizzare i driver JDBC o ODBC o le viste SVV\$1ALL e SVV\$1REDSHIFT.

   I cluster producer potrebbero avere molti schemi nel database, nelle tabelle e nelle viste all'interno di ogni schema. Gli utenti sul lato consumer possono vedere solo il sottoinsieme di oggetti che sono resi disponibili attraverso l'unità di condivisione dati. Questi utenti non possono visualizzare tutti i metadati dal cluster producer. Questo approccio consente di fornire un controllo granulare della sicurezza dei metadati con la condivisione dei dati.

   È possibile continuare a connettersi ai database locali nel cluster. Ma ora, è anche possibile leggere dai database e dagli schemi creati dall'unità di condivisione dati utilizzando la notazione database.schema.tabella in tre parti. È possibile eseguire query che si estendono su tutti i database visibili. Questi possono essere database locali sul cluster o database creati dalle unità di condivisione dati. I cluster consumer non possono connettersi ai database creati dalle unità di condivisione dati.

   È possibile accedere ai dati mediante la qualifica completa. Per ulteriori informazioni, consulta [Esempi di query tra database](cross-database_example.md).

   ```
   SELECT * FROM sales_db.public.tickit_sales_redshift;
   ```

   È possibile utilizzare le istruzioni SELECT solo su oggetti condivisi. Tuttavia, è possibile creare tabelle nel cluster consumer eseguendo una query sui dati degli oggetti condivisi in un database locale diverso.

   Oltre ad eseguire query, i consumer possono creare viste su oggetti condivisi. Sono supportate solo le viste ad associazione tardiva o le viste materializzate. Amazon Redshift non supporta le viste regolari sui dati condivisi. Le viste create dai consumer possono estendersi su più database locali o database creati dalle unità di condivisione dati. Per ulteriori informazioni, consulta [CREATE VIEW](r_CREATE_VIEW.md).

   ```
   // Connect to a local cluster database
                  
   // Create a view on shared objects and access it. 
   CREATE VIEW sales_data 
   AS SELECT * 
   FROM sales_db.public.tickit_sales_redshift 
   WITH NO SCHEMA BINDING;
   
   SELECT * FROM sales_data;
   ```