Oggetti e principi dipendenti dalle policy - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python a UDFs partire dal 1° novembre 2025. Se vuoi usare Python UDFs, crea la UDFs data precedente a quella data. Python esistente UDFs continuerà a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

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

Oggetti e principi dipendenti dalle policy

Per garantire la sicurezza delle applicazioni ed evitare che gli oggetti delle policy diventino obsoleti o non validi, Amazon Redshift non consente di eliminare o modificare oggetti a cui fanno riferimento le policy RLS.

Di seguito sono elencate le dipendenze degli oggetti dello schema che Amazon Redshift monitora per le policy RLS.

  • Quando si tiene traccia della dipendenza degli oggetti dello schema per la tabella di destinazione, Amazon Redshift segue queste regole:

    • Quando si elimina una tabella di destinazione, Amazon Redshift scollega la policy da una relazione, un utente, un ruolo o un pubblico.

    • Quando si rinomina il nome di una tabella di destinazione, non vi è alcun impatto sulle policy collegate.

    • Puoi eliminare le colonne della tabella delle policy a cui viene fatto riferimento all'interno della definizione della policy solo se elimini o scolleghi prima la policy. Ciò vale anche quando viene specificata l'opzione CASCADE. Puoi eliminare altre colonne nella tabella di destinazione.

    • Non è possibile rinominare le colonne di riferimento della tabella di destinazione. Per rinominare le colonne di riferimento, scollega prima la policy. Ciò vale anche quando viene specificata l'opzione CASCADE.

    • Non è possibile modificare il tipo di colonna, anche se si specifica l'opzione CASCADE.

  • Quando si tiene traccia della dipendenza degli oggetti dello schema per la tabella di ricerca, Amazon Redshift segue queste regole:

    • Non è possibile eliminare una tabella di ricerca. Per eliminare una tabella di ricerca, è necessario eliminare prima la policy in cui si fa riferimento alla tabella di ricerca.

    • Non puoi rinominare una tabella di ricerca. Per rinominare una tabella di ricerca, è necessario eliminare prima la policy in cui si fa riferimento alla tabella di ricerca. Ciò vale anche quando viene specificata l'opzione CASCADE.

    • Non è possibile eliminare le colonne della tabella di ricerca utilizzate nella definizione della policy. Per eliminare le colonne di una tabella di ricerca utilizzata nella definizione di policy, è necessario eliminare prima la policy in cui si fa riferimento alla tabella di ricerca. Ciò si applica anche quando l'opzione CASCADE è specificata nell'istruzione ALTER TABLE DROP COLUMN. Puoi eliminare altre colonne nella tabella di ricerca.

    • Non è possibile rinominare le colonne di riferimento della tabella di ricerca. Per rinominare le colonne di riferimento, è necessario eliminare prima la policy in cui si fa riferimento alla tabella di ricerca. Ciò vale anche quando viene specificata l'opzione CASCADE.

    • Non puoi modificare il tipo della colonna a cui fai riferimento.

  • Quando un utente o un ruolo viene eliminato, Amazon Redshift scollega automaticamente tutte le policy collegate all'utente o il ruolo.

  • Se utilizzi l'opzione CASCADE nell'istruzione DROP SCHEMA, Amazon Redshift elimina anche le relazioni nello schema. Inoltre, elimina le relazioni in tutti gli altri schemi che dipendono dalle relazioni nello schema eliminato. Per una relazione che è una tabella di ricerca in una policy, Amazon Redshift non completa DROP SCHEMA DDL. Per qualsiasi relazione eliminata dall'istruzione DROP SCHEMA, Amazon Redshift scollega tutte le policy associate a tali relazioni.

  • Puoi eliminare una funzione di ricerca (una funzione a cui si fa riferimento all'interno di una definizione di policy) solo se elimini anche la policy stessa. Ciò vale anche quando viene specificata l'opzione CASCADE.

  • Quando una policy è collegata a una tabella, Amazon Redshift verifica in una policy diversa se questa tabella è una tabella di ricerca. In tal caso, Amazon Redshift non consentirà il collegamento di una policy a questa tabella.

  • Durante la creazione di una policy RLS, Amazon Redshift verifica se questa tabella è una tabella di destinazione per qualsiasi altra policy RLS. In tal caso, Amazon Redshift non consentirà la creazione di una policy su questa tabella.

Esempio

L'esempio seguente illustra come viene tracciata la dipendenza dallo schema.

-- The CREATE and ATTACH policy statements for `policy_events` references some -- target and lookup tables. -- Target tables are tickit_event_redshift and target_schema.target_event_table. -- Lookup table is tickit_sales_redshift. -- Policy `policy_events` has following dependencies: -- table tickit_sales_redshift column eventid, qtysold -- table tickit_event_redshift column eventid -- table target_event_table column eventid -- schema public and target_schema CREATE RLS POLICY policy_events WITH (eventid INTEGER) USING ( eventid IN (SELECT eventid FROM tickit_sales_redshift WHERE qtysold <3) ); ATTACH RLS POLICY policy_events ON tickit_event_redshift TO ROLE analyst; ATTACH RLS POLICY policy_events ON target_schema.target_event_table TO ROLE consumer;