

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Partage de données entre Comptes AWS
<a name="across-account"></a>

Vous pouvez partager des données à des fins de lecture entre des Comptes AWS. Le partage de données entre des Comptes AWS fonctionne de la même manière que le partage de données au sein d’un compte. La différence est qu’une négociation bidirectionnelle est requise pour partager des données entre des Comptes AWS. Un administrateur de compte producteur peut autoriser des comptes consommateurs à accéder à des unités de partage des données ou choisir de ne pas autoriser l’accès. Pour utiliser une unité de partage des données autorisée, un administrateur de compte consommateur peut associer l’unité de partage des données. L'administrateur peut associer le partage de données à un ensemble Compte AWS ou à des clusters spécifiques du compte client, ou refuser le partage de données. Pour plus d’informations sur le partage de données au sein d’un compte, consultez [Partage de l'accès en lecture aux données au sein d'un Compte AWS](within-account.md).

Une unité de partage des données peut avoir des consommateurs de données qui sont des espaces de noms dans le même compte, ou dans des Comptes AWS différents. Vous n’avez pas besoin de créer des unités de partage des données distincts pour le partage au sein d’un compte et le partage entre comptes.

Pour le partage de données entre comptes, les clusters producteur et consommateur doivent être chiffrés.

Lorsqu'ils partagent des données avec Comptes AWS, les administrateurs du producteur les partagent Compte AWS en tant qu'entité. Un administrateur consommateur peut décider quels espaces de noms sur le compte consommateur ont accès à une unité de partage des données.

**Topics**
+ [actions de l’administrateur producteur](producer-cluster-admin.md)
+ [Actions de l’administrateur de comptes consommateur](consumer-account-admin.md)
+ [actions de l’administrateur consommateur](consumer-cluster-admin.md)

# actions de l’administrateur producteur
<a name="producer-cluster-admin"></a>

Avec Amazon Redshift, vous pouvez effectuer des tâches administratives sur les clusters de producteurs afin de gérer l’ingestion de données et le traitement des charges.

**Si vous êtes administrateur producteur ou propriétaire de base de données,** procédez comme suit :

1. Créez des unités de partage des données dans votre cluster et ajoutez-y des objets d’unité de partage des données. Pour obtenir des étapes plus détaillées sur la création des unités de partage des données et l’ajout d’objets d’unité de partage des données à ces derniers, consultez [Partage de l'accès en lecture aux données au sein d'un Compte AWS](within-account.md). Pour plus d’informations sur CREATE DATASHARE et ALTER DATASHARE, consultez [CREATE DATASHARE](r_CREATE_DATASHARE.md) et [ALTER DATASHARE](r_ALTER_DATASHARE.md).

   L’exemple suivant ajoute différents objets d’unité de partage des données à l’unité de partage des données `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;
   ```

   Vous pouvez également utiliser la console Amazon Redshift pour créer ou modifier des unités de partage des données. Pour plus d’informations, consultez [Créer une unité de partage des données](datashare-creation.md#create-datashare-console) et [Modification des unités de partage des données créées dans votre compte](manage-datashare-existing-console.md#edit-datashare-console).

1. Déléguer des autorisations pour opérer sur l’unité de partage des données. Pour plus d’informations, consultez [GRANT](r_GRANT.md) ou [REVOKE](r_REVOKE.md).

   L’exemple suivant attribue des autorisations à `dbuser` sur `salesshare`.

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

   Les super-utilisateurs de cluster et les propriétaires de l’unité de partage des données peuvent accorder ou révoquer des autorisations de modification sur l’unité de partage des données à d’autres utilisateurs.

1. Ajoutez ou supprimez des consommateurs des unités de partage des données. L'exemple suivant ajoute l' Compte AWS ID à`salesshare`. Pour plus d’informations, consultez [GRANT](r_GRANT.md) ou [REVOKE](r_REVOKE.md).

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

   Vous ne pouvez accorder des autorisations qu’à un seul consommateur de données dans une instruction GRANT.

   Les super-utilisateurs de cluster et les propriétaires d’objets d’unité de partage des données ou les utilisateurs qui ont l’autorisation SHARE sur l’unité de partage des données peuvent ajouter ou supprimer des consommateurs d’une unité de partage des données. Pour ce faire, ils utilisent GRANT USAGE ou REVOKE USAGE.

   Vous pouvez également utiliser la console Amazon Redshift pour ajouter ou supprimer des consommateurs de données pour les unités de partage des données. Pour plus d’informations, consultez [Ajout de consommateurs de données aux unités de partage des données](datashare-creation.md#add-data-consumer-console) et [Supprimer des consommateurs de données des unités de partage des données](manage-datashare-existing-console.md#remove-data-consumer-console).

1. (Facultatif) Révoquez l'accès au partage de données Comptes AWS si vous ne souhaitez plus partager les données avec les consommateurs.

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

**Si vous êtes administrateur de compte producteur,** procédez comme suit :

Après avoir autorisé l'utilisation du Compte AWS, le statut du partage de données est. `pending_authorization` L’administrateur du compte producteur doit autoriser les unités de partage des données à l’aide de la console Amazon Redshift et choisir les consommateurs de données.

Connectez-vous à la [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/). Choisissez ensuite les consommateurs de données auxquels autoriser l’accès à des unités de partage des données ou retirer l’autorisation. Les consommateurs de données autorisés reçoivent des notifications pour prendre des mesures sur les unités de partage des données. Si vous ajoutez un espace de noms en tant que consommateur de données, vous n’êtes pas tenu d’effectuer d’autorisation. Une fois que les consommateurs de données sont autorisés, ils peuvent accéder aux objets d’unité de partage des données et créer une base de données consommateur pour interroger les données. Pour plus d’informations, consultez [Autoriser ou supprimer l’autorisation des unités de partage des données](authorize-datashare-console.md).

## Partage des autorisations d’écriture sur les données entre les comptes
<a name="within-account-multi-warehouse-consumer-associate"></a>

Avec Amazon Redshift, vous pouvez partager des données entre AWS comptes et accorder des autorisations d'écriture, ce qui permet la collaboration et le partage de données entre des équipes ou des organisations. Le partage de données entre comptes vous permet de créer un compte de fournisseur de données qui crée et gère des bases de données, des schémas et des tables, qui peuvent ensuite être partagés en toute sécurité avec des comptes de consommateurs de données. Les sections suivantes présentent le processus de configuration de l’unité de partage des données entre comptes et d’octroi d’un accès en écriture dans Amazon Redshift.

# Actions de l’administrateur de comptes consommateur
<a name="consumer-account-admin"></a>

Avec Amazon Redshift, vous pouvez gérer les comptes des clients et contrôler leur accès à vos ressources d’entreposage de données.

**Si vous êtes un administrateur de compte consommateur,** procédez comme suit :

Pour associer un ou plusieurs partages de données partagés depuis d'autres comptes à l'intégralité Compte AWS ou à des espaces de noms spécifiques de votre compte, utilisez la console Amazon Redshift.

Connectez-vous à la [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/). Associez ensuite un ou plusieurs partages de données partagés depuis d'autres comptes à l'ensemble Compte AWS ou à des espaces de noms spécifiques de votre compte. Pour de plus amples informations, veuillez consulter [Associer un partage de données à un autre Compte AWS dans Amazon Redshift](writes-associating.md).

Une fois que les espaces de noms Compte AWS ou des espaces de noms spécifiques sont associés, les partages de données peuvent être utilisés. Vous pouvez également modifier l’association d’unité de partage des données à tout moment. Lorsque vous remplacez l'association d'espaces de noms individuels par un Compte AWS, Amazon Redshift remplace les espaces de noms par les informations. Compte AWS Lorsque l'association passe d'un espace de noms Compte AWS à un espace de noms spécifique, Amazon Redshift remplace les informations par Compte AWS les informations de l'espace de noms. Tous les espaces de noms sur le compte ont accès aux données.

# actions de l’administrateur consommateur
<a name="consumer-cluster-admin"></a>

Avec Amazon Redshift, vous pouvez effectuer des tâches administratives sur les clusters de consommateurs afin de gérer l’ingestion de données et le traitement des charges.

**Si vous êtes un administrateur consommateur, ** procédez comme suit :

1. Répertoriez les unités de partage des données mises à votre disposition et affichez leur contenu. Le contenu des unités de partage des données n’est disponible que lorsque l’administrateur producteur a autorisé les unités de partage des données et que l’administrateur consommateur a accepté et associé les unités de partage des données. Pour plus d’informations, consultez [DESC DATASHARE](r_DESC_DATASHARE.md) et [SHOW DATASHARES](r_SHOW_DATASHARES.md).

   L’exemple suivant montre comment afficher les informations des unités de partage des données entrants d’un espace de noms producteur spécifié. Lorsque vous exécutez DESC DATAHSARE en tant qu’administrateur consommateur, vous devez spécifier l’option NAMESPACE et l’ID de compte pour afficher les unités de partage des données entrantes. Pour les unités de partage des données sortantes, spécifiez le nom de l’unité de partage des données.

   ```
   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)
   ```

   Seuls les super-utilisateurs de cluster peuvent le faire. Vous pouvez également utiliser SVV\$1DATASHARES pour afficher les unités de partage des données et SVV\$1DATASHARE\$1OBJECTS pour afficher les objets dans l’unité de partage des données.

   L'exemple suivant affiche les datashares entrants dans un cluster consommateur.

   ```
   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. Créez des bases de données locales qui font référence aux unités de partage des données. Spécifiez la valeur NAMESPACE et l’ID de compte lors de la création de la base de données à partir de l’unité de partage des données. Pour plus d’informations, consultez [CREATE DATABASE](r_CREATE_DATABASE.md).

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

   Si vous souhaitez un contrôle plus précis de l’accès aux objets de la base de données locale, utilisez la clause WITH PERMISSIONS quand vous créez la base de données. Cela vous permet d’accorder des autorisations de niveau objet pour les objets de la base de données à l’étape 4. 

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

   Vous pouvez voir les bases de données que vous avez créées à partir de l’unité de partage des données en interrogeant la vue [SVV\$1REDSHIFT\$1DATABASES](r_SVV_REDSHIFT_DATABASES.md). Vous pouvez vous connecter à ces base de données directement ou vous connecter à une base de données locale sur votre cluster consommateur et effectuer une requête entre bases de données pour interroger les données des bases de données d’unités de partage des données. Vous ne pouvez pas créer une unité de partage des données au-dessus des objets de base de données créés à partir d’une unité de partage des données existant. Toutefois, vous pouvez copier les données dans une table distincte du cluster consommateur, effectuer le traitement nécessaire, puis partager les nouveaux objets créés.

1. (Facultatif) Créez des schémas externes pour référencer et attribuer des autorisations détaillées à des schémas spécifiques de la base de données consommateur importée sur le cluster consommateur. Pour plus d’informations, consultez [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md).

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

1. Selon les besoins, accordez aux utilisateurs et rôles du cluster consommateur des autorisations sur les bases de données et références de schéma créées à partir des unités de partage des données. Pour plus d’informations, consultez [GRANT](r_GRANT.md) ou [REVOKE](r_REVOKE.md).

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

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

   Si vous avez créé votre base de données sans la clause WITH PERMISSIONS, vous ne pouvez attribuer des autorisations sur l’ensemble de la base de données créée à partir de l’unité de partage des données qu’à vos utilisateurs ou groupes. Dans certains cas, vous avez besoin de contrôles précis sur un sous-ensemble d’objets de base de données créés à partir de l’unité de partage des données. Si tel est le cas, vous pouvez créer une référence de schéma externe tournée vers des schémas spécifiques dans l’unité de partage des données comme décrit à l’étape précédente. Vous pouvez ensuite fournir des autorisations détaillées au niveau du schéma. Vous pouvez également créer des vues à liaison tardive sur les objets partagés et les utiliser pour attribuer des autorisations détaillées. Vous pouvez également envisager que les clusters producteur créent des unités de partage des données supplémentaires pour vous avec la précision requise. Vous pouvez créer autant de références de schéma à la base de données créée à partir de l’unité de partage des données que vous le souhaitez.

   Si vous avez créé votre base de données avec la clause WITH PERMISSIONS à l’étape 2, vous devez attribuer des autorisations de niveau objet dans la base de données partagée. Un utilisateur disposant uniquement de l’autorisation USAGE ne peut accéder à aucun objet d’une base de données créée avec la clause WITH PERMISSIONS tant qu’il n’a pas obtenu d’autorisations de niveau objet supplémentaires.

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

1. Interroger les données dans les objets partagés dans les unités de partage des données.

   Les utilisateurs et les rôles disposant d’autorisations sur les bases de données consommateur et les schémas sur les clusters consommateur peuvent explorer et naviguer entre les métadonnées de tous les objets partagés. Ils peuvent également explorer et naviguer entre les objets locaux dans un cluster consommateur. Pour ce faire, utilisez des pilotes JDBC ou ODBC ou des vues SVV\$1ALL et SVV\$1REDSHIFT.

   Les clusters producteur peuvent avoir de nombreux schémas dans la base de données, les tables et les vues au sein de chaque schéma. Les utilisateurs du côté consommateur ne peuvent voir que le sous-ensemble d’objets mis à disposition via l’unité de partage des données. Ces utilisateurs ne peuvent pas voir l’intégralité des métadonnées du cluster producteur. Cette approche permet de fournir un contrôle détaillé de la sécurité des métadonnées avec le partage des données.

   Vous continuez à vous connecter aux bases de données de cluster locales. Mais maintenant, vous pouvez également lire à partir des bases de données et des schémas qui sont créés à partir de l’unité de partage des données en utilisant la notation database.schema.table en trois parties. Vous pouvez effectuer des requêtes qui s’étendent sur toutes les bases de données qui sont visibles pour vous. Il peut s’agir de bases de données locales sur le cluster ou de bases de données créées à partir des unités de partage des données. Les clusters consommateur ne peuvent pas se connecter aux bases de données créées à partir des unités de partage des données.

   Vous pouvez accéder aux données à l’aide d’une qualification complète. Pour plus d'informations, consultez [Exemple de requête entre bases de données](cross-database_example.md).

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

   Vous ne pouvez utiliser les instructions SELECT que sur les objets partagés. Toutefois, vous pouvez créer des tables dans le cluster consommateur en interrogeant les données des objets partagés dans une base de données locale différente.

   En plus d’adresser des requêtes, les consommateurs peuvent créer des vues sur des objets partagés. Seules les vues à liaison tardive et les vues matérialisées sont prises en charge. Amazon Redshift ne prend pas en charge les vues standard sur les données partagées. Les vues créées par les consommateurs peuvent s’étendre sur plusieurs bases de données locales ou bases de données créées à partir d’unités de partage des données. Pour de plus amples informations, veuillez consulter [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;
   ```