ALTER DATASHARE - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

ALTER DATASHARE

Cambia la definizione di una unità di condivisione dati. È possibile aggiungere o rimuovere oggetti utilizzando ALTER DATASHARE. È possibile modificare una unità di condivisione dati solo nel database corrente. Aggiunta o rimozione di oggetti dal database associato a una unità di condivisione dati. Il proprietario dell'unità di condivisione dati con le autorizzazioni necessarie per gli oggetti dell'unità di condivisione dati da aggiungere o rimuovere può modificare l'unità.

Privilegi richiesti

Di seguito sono riportati i privilegi richiesti per ALTER DATASHARE:

  • Utente con privilegi avanzati.

  • Utente con il privilegio ALTER DATASHARE.

  • Utenti con privilegio ALTER o ALL sull'unità di condivisione dati.

  • Per aggiungere oggetti specifici a una unità di condivisione dati, gli utenti devono avere il privilegio sugli oggetti. Per questo caso, gli utenti devono essere i proprietari degli oggetti o disporre dei privilegi SELECT, USAGE o ALL sugli oggetti.

Sintassi

La sintassi seguente illustra come aggiungere o rimuovere oggetti nell'unità unità di condivisione dati.

ALTER DATASHARE datashare_name { ADD | REMOVE } {
TABLE schema.table [, ...]
| SCHEMA schema [, ...]
| FUNCTION schema.sql_udf (argtype,...) [, ...]
| ALL TABLES IN SCHEMA schema [, ...]
| ALL FUNCTIONS IN SCHEMA schema [, ...] }

La sintassi seguente illustra come configurare le proprietà dell'unità unità di condivisione dati.

ALTER DATASHARE datashare_name {
[ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]
[ SET INCLUDENEW [=] TRUE | FALSE FOR SCHEMA schema ] }

Parametri

datashare_name

Il nome della unità di condivisione dati da modificare.

ADD | REMOVE

Una clausola che specifica se aggiungere o rimuovere oggetti dall'unità di condivisione dati.

TABLE schema.table [, ...]

Il nome della tabella o della vista nello schema specificato da aggiungere all'unità di condivisione dati.

SCHEMA schema [, ...]

Il nome dello schema da aggiungere all'unità di condivisione dati.

FUNZIONE schema.sql_udf (argtype,...) [, ...]

Il nome della funzione SQL definita dall'utente da aggiungere all'unità di condivisione dati.

ALL TABLES IN SCHEMA schema [, ...]

Una clausola che specifica se aggiungere tutte le tabelle e le viste nello schema specificato all'unità di condivisione dati.

ALL FUNCTIONS IN SCHEMA schema [, ...] }

Una clausola che specifica l'aggiunta di tutte le funzioni dello schema specificato all'unità di condivisione dati.

[ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]

Una clausola che specifica se una unità di condivisione dati può essere condivisa in un cluster accessibile pubblicamente.

[ SET INCLUDENEW [=] TRUE | FALSE FOR SCHEMA schema ]

Una clausola che specifica se aggiungere all'unità di condivisione dati tabelle, viste o funzioni definite dall'utente (FDU) SQL future create nell'unità di condivisione dati specificata. Le tabelle correnti, le viste o le funzioni definite dall'utente SQL nello schema specificato non vengono aggiunte all'unità di condivisione dati. Solo gli utenti con privilegi avanzati possono modificare questa proprietà per ogni coppia unità di condivisione dati-schema. Per impostazione predefinita, la clausola INCLUDENEW è false.

Note per l'utilizzo di ALTER DATASHARE

  • I seguenti utenti possono modificare una unità di condivisione dati:

    • Un utente con privilegi avanzati

    • Il proprietario dell'unità di condivisione dati

    • Utenti con privilegio ALTER o ALL sull'unità di condivisione dati

  • Per aggiungere oggetti specifici a una unità di condivisione dati, gli utenti devono avere il privilegio sugli oggetti. Gli utenti devono essere i proprietari degli oggetti o disporre dei privilegi SELECT, USAGE o ALL sugli oggetti.

  • È possibile condividere schemi, tabelle, viste regolari, viste di associazione tardiva, viste materializzate e funzioni definite dall'utente (FDU) SQL. Aggiungere uno schema all'unità di condivisione dati prima di aggiungere altri oggetti nello schema.

    Quando si aggiunge uno schema, Amazon Redshift non aggiunge tutti gli oggetti sotto di esso. È necessario aggiungerli esplicitamente.

  • Consigliamo di creare unità di condivisione dati AWS Data Exchange con l'impostazione accessibile al pubblico attivata.

  • In generale, consigliamo di non modificare un'unità di condivisione dati AWS Data Exchange per disattivare l'accessibilità pubblica tramite l'istruzione ALTER DATASHARE. Se lo si farà, gli Account AWS che hanno accesso all'unità di condivisione dati perderanno l'accesso se i cluster sono accessibili pubblicamente. L'esecuzione di questo tipo di alterazione può violare i termini del prodotto dei dati in AWS Data Exchange. Per un'eccezione a questa raccomandazione, vedere di seguito.

    L'esempio seguente mostra un errore quando un'unità unità di condivisione dati AWS Data Exchange viene creata con l'impostazione disattivata.

    ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE; ERROR: Alter of ADX-managed datashare salesshare requires session variable datashare_break_glass_session_var to be set to value 'c670ba4db22f4b'

    Per consentire l'alterazione di un'unità unità di condivisione dati AWS Data Exchange per disattivare l'impostazione accessibile al pubblico, impostare la variabile seguente ed eseguire nuovamente l'istruzione ALTER DATASHARE.

    SET datashare_break_glass_session_var to 'c670ba4db22f4b';
    ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE;

    In questo caso, Amazon Redshift genera un valore casuale una tantum per impostare la variabile di sessione per consentire ALTER DATASHARE SET PUBLICACCESSIBLE FALSE per un'unità unità di condivisione dati AWS Data Exchange.

Esempi

Nell’esempio seguente viene aggiunto lo schema public all’unità di condivisione dati salesshare.

ALTER DATASHARE salesshare ADD SCHEMA public;

Nell'esempio seguente vengono aggiunte le tabelle public.tickit_sales_redshift all'unità di condivisione dati salesshare.

ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift;

Nell'esempio seguente vengono aggiunte tutte le tabelle all'unità di condivisione dati salesshare.

ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;

Nell'esempio seguente vengono rimosse le tabelle public.tickit_sales_redshift dall'unità di condivisione dati salesshare.

ALTER DATASHARE salesshare REMOVE TABLE public.tickit_sales_redshift;