Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog
ALTER DATASHARE
Modifie la définition d’une unité de partage des données. Vous pouvez ajouter ou supprimer des objets à l’aide de la commande ALTER DATASHARE. Vous ne pouvez modifier une unité de partage des données que dans la base de données actuelle. Ajoutez ou supprimez des objets de la base de données associée à une unité de partage des données. Le propriétaire de l’unité de partage des données disposant des autorisations requises sur les objets d’unité de partage des données à ajouter ou à supprimer peut modifier l’unité de partage des données.
Privilèges requis
Les privilèges suivants sont requis pour ALTER DATASHARE :
-
Super-utilisateur.
-
Utilisateur disposant du privilège ALTER DATASHARE.
-
Utilisateurs disposant du privilège ALTER ou ALL sur l’unité de partage des données.
-
Pour ajouter des objets spécifiques à une unité de partage des données, les utilisateurs doivent avoir le privilège sur les objets. Dans ce cas, les utilisateurs doivent être les propriétaires des objets ou disposer des privilèges SELECT, USAGE ou ALL sur les objets.
Syntaxe
La syntaxe suivante illustre comment ajouter ou supprimer des objets à l’unité de partage des données.
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 syntaxe suivante montre la manière de configurer les propriétés de l’unité de partage des données.
ALTER DATASHARE datashare_name {
[ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]
[ SET INCLUDENEW [=] TRUE | FALSE FOR SCHEMA schema ] }
Paramètres
- datashare_name
-
Nom de l’unité de partage des données à modifier.
- ADD | REMOVE
-
Clause spécifiant s’il faut ajouter ou supprimer des objets de l’unité de partage des données.
- TABLE schema.table [, ...]
-
Nom de la table ou de la vue dans le schéma spécifié à ajouter à l’unité de partage des données.
- SCHEMA schema [, ...]
-
Nom du schéma à ajouter à l’unité de partage des données.
- FUNCTION schema.sql_udf (argtype,...) [, ...]
-
Nom de la fonction SQL définie par l’utilisateur avec des types d’arguments à ajouter à l’unité de partage des données.
- ALL TABLES IN SCHEMA schéma [, ...]
-
Clause spécifiant s’il faut ajouter toutes les tables et vues du schéma spécifié à l’unité de partage des données.
- ALL FUNCTIONS IN SCHEMA schema [, ...] }
-
Clause spécifiant l’ajout de toutes les fonctions du schéma spécifié à l’unité de partage des données.
- [ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]
-
Clause spécifiant si une unité de partage des données peut être partagée avec des clusters accessibles au public.
- [ SET INCLUDENEW [=] TRUE | FALSE FOR SCHEMA schema ]
-
Clause spécifiant s’il faut ajouter des tables, des vues ou des fonctions SQL définies par l’utilisateur (UDF) créées dans le schéma spécifié à l’unité de partage des données. Les tables, vues ou fonctions UDF SQL actuelles dans le schéma spécifié ne sont pas ajoutées à l’unité de partage des données. Seuls les super-utilisateurs peuvent modifier cette propriété pour chaque paire de datashare-schéma. Par défaut, la clause INCLUDENEW est false.
Notes d’utilisation d’ALTER DATASHARE
-
Les utilisateurs suivants peuvent modifier une unité de partage des données :
-
Super-utilisateur
-
Le propriétaire de l’unité de partage des données
-
Les utilisateurs disposant du privilège ALTER ou ALL sur l’unité de partage des données
-
-
Pour ajouter des objets spécifiques à une unité de partage des données, ces utilisateurs doivent avoir le privilège adéquat sur les objets. Les utilisateurs doivent être les propriétaires des objets ou avoir les privilèges SELECT, USAGE ou ALL sur les objets.
-
Vous pouvez partager des schémas, des tables, des vues régulières, des vues à liaison tardive, des vues matérialisées et des fonctions définies par l’utilisateur (UDF) SQL. Ajoutez d’abord un schéma à une unité de partage des données avant d’ajouter d’autres objets dans le schéma.
Lorsque vous ajoutez un schéma, Amazon Redshift n’ajoute pas tous les objets qu’il contient. Vous devez les ajouter explicitement.
-
Nous vous conseillons de créer des unités de partage des données AWS Data Exchange avec le paramètre accessible au public activé.
-
En règle générale, nous vous recommandons de ne pas modifier une unité de partage des données AWS Data Exchange pour désactiver l’accessibilité publique à l’aide de l’instruction ALTER DATASHARE. Si vous le faites, les Comptes AWS qui ont accès à l’unité de partage des données perdent l’accès si leurs clusters sont accessibles au public. L’exécution de ce type de modification peut enfreindre les termes des produits de données dans AWS Data Exchange. Pour une exception à cette recommandation, reportez-vous à ce qui suit.
L’exemple suivant illustre une erreur lorsqu’une unité de partage des données AWS Data Exchange est créée avec le paramètre désactivé.
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'Pour autoriser la modification d’une unité de partage des données AWS Data Exchange pour désactiver le paramètre accessible au public, définissez la variable suivante et exécutez à nouveau l’instruction ALTER DATASHARE.
SET datashare_break_glass_session_var to 'c670ba4db22f4b';ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE;Dans ce cas, Amazon Redshift génère une valeur aléatoire à usage unique pour définir la variable de séance afin d’autoriser ALTER DATASHARE SET PUBLICACCESSIBLE FALSE pour une unité de partage des données AWS Data Exchange.
Exemples
L’exemple suivant ajoute le schéma public à l’unité de partage des données salesshare.
ALTER DATASHARE salesshare ADD SCHEMA public;
L’exemple suivant ajoute la table public.tickit_sales_redshift à l’unité de partage des données salesshare.
ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift;
L’exemple suivant ajoute toutes les tables à l’unité de partage des données salesshare.
ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;
L’exemple suivant supprime la table public.tickit_sales_redshift de l’exemple de l’unité de partage des données salesshare.
ALTER DATASHARE salesshare REMOVE TABLE public.tickit_sales_redshift;