

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Compartir datos entre Cuentas de AWS
<a name="across-account"></a>

Puede compartir datos con fines de lectura entre Cuentas de AWS. El uso compartido de datos entre Cuentas de AWS funciona de manera similar al uso compartido de datos dentro de una cuenta. La diferencia es que se requiere la autorización de ambas partes para compartir datos entre Cuentas de AWS. Los administradores de una cuenta productora pueden autorizar a las cuentas consumidoras para acceder a los datashares o elegir no autorizar ningún acceso. Para utilizar un recurso compartido de datos autorizado, el administrador de la cuenta consumidora puede asociar este recurso. El administrador puede asociar el recurso compartido de datos a la Cuenta de AWS completa o a clústeres específicos de la cuenta consumidora, o rechazar el recurso compartido de datos. Para obtener más información acerca del uso compartido de datos dentro de una cuenta, consulte [Uso compartido de acceso de lectura a los datos en una Cuenta de AWS](within-account.md).

Un recurso compartido de datos puede tener consumidores de datos que sean espacios de nombres de la misma cuenta o de Cuentas de AWS diferentes. No es necesario crear datashares independientes para compartirlos dentro de una cuenta y entre cuentas.

Para compartir datos entre cuentas, tanto el clúster productor como el consumidor deben estar cifrados.

Cuando se comparten datos con Cuentas de AWS, los administradores de productores comparten los datos con la Cuenta de AWS como una entidad. El administrador de consumidores puede decidir qué espacios de nombres de la cuenta de consumidor pueden acceder a un recurso compartido de datos.

**Topics**
+ [Acciones del administrador de productores](producer-cluster-admin.md)
+ [Acciones del administrador de una cuenta consumidora](consumer-account-admin.md)
+ [Acciones del administrador de consumidores](consumer-cluster-admin.md)

# Acciones del administrador de productores
<a name="producer-cluster-admin"></a>

Con Amazon Redshift, puede realizar tareas administrativas en los clústeres de productores para administrar la ingesta de datos y el procesamiento de cargas.

**Si es administrador de productores o el propietario de una base de datos**, siga estos pasos:

1. Cree datashares en el clúster y agregue objetos a los datashares. Para obtener instrucciones más detalladas sobre cómo crear datashares y agregarles objetos, consulte [Uso compartido de acceso de lectura a los datos en una Cuenta de AWS](within-account.md). Para obtener más información acerca de CREATE DATASHARE y ALTER DATASHARE, consulte [CREATE DATASHARE](r_CREATE_DATASHARE.md) y [ALTER DATASHARE](r_ALTER_DATASHARE.md).

   En el siguiente ejemplo, se agregan diferentes objetos de recursos compartidos de datos al recurso compartido de datos `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;
   ```

   También puede utilizar la consola de Amazon Redshift para crear o modificar los datashares. Para obtener más información, consulte [Creación de un recurso compartido de datos](datashare-creation.md#create-datashare-console) y [Edición de datashares creados en su cuenta](manage-datashare-existing-console.md#edit-datashare-console).

1. Delegue permisos para operar en el datashare. Para obtener más información, consulte [GRANT](r_GRANT.md) o [REVOKE](r_REVOKE.md).

   En el siguiente ejemplo, se otorgan permisos a `dbuser` para `salesshare`.

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

   Los superusuarios del clúster y los propietarios del recurso compartido de datos pueden otorgar o revocar permisos de modificación sobre este a usuarios adicionales.

1. Agregue consumidores a los datashares o quítelos. En el siguiente ejemplo, se agrega el ID de la Cuenta de AWS a `salesshare`. Para obtener más información, consulte [GRANT](r_GRANT.md) o [REVOKE](r_REVOKE.md).

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

   Solo se pueden otorgar permisos a un consumidor de datos en una instrucción GRANT.

   Los superusuarios de clústeres y los propietarios de objetos del recurso compartido de datos o los usuarios que tienen los permisos SHARE sobre el recurso compartido de datos pueden agregarle consumidores o quitárselos. Para ello, utilizan las instrucciones GRANT USAGE o REVOKE USAGE.

   También puede utilizar la consola de Amazon Redshift para agregar o quitar consumidores de datos en los recursos compartidos de datos. Para obtener más información, consulte [Adición de consumidores de datos a recursos compartidos de datos](datashare-creation.md#add-data-consumer-console) y [Eliminación de consumidores de datos de los datashares](manage-datashare-existing-console.md#remove-data-consumer-console).

1. (Opcional) Revoque el acceso al recurso compartido de datos desde las Cuentas de AWS si ya no desea compartir los datos con los consumidores.

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

**Si es el administrador de una cuenta productora**, siga estos pasos:

Después de otorgar el uso a Cuenta de AWS, el estado del recurso compartido de datos es `pending_authorization`. El administrador de la cuenta productora debe autorizar los datashares a través de la consola de Amazon Redshift y elegir los consumidores de datos.

Inicie sesión en [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/). Luego elija a qué consumidores de datos autorizará para que accedan a los recursos compartidos de datos o a cuáles retirará la autorización. Los consumidores de datos autorizados reciben notificaciones para tomar medidas en los datashares. Si va a añadir un espacio de nombres como consumidor de datos, no tiene que realizar el proceso de autorización. Una vez autorizados los consumidores de datos, ellos pueden acceder a los objetos de los datashares y crear una base de datos consumidora para consultar los datos. Para obtener más información, consulte [Autorización o retiro de la autorización de los recursos compartidos de datos](authorize-datashare-console.md).

## Uso compartido de permisos de escritura de los datos entre cuentas
<a name="within-account-multi-warehouse-consumer-associate"></a>

Con Amazon Redshift, puede compartir datos entre cuentas de AWS y conceder permisos de escritura, lo que permite la colaboración y el uso compartido de datos entre equipos u organizaciones. El uso compartido de datos entre cuentas le permite establecer una cuenta de proveedor de datos que crea y administra bases de datos, esquemas y tablas, que luego se pueden compartir de forma segura con las cuentas de los consumidores de datos. En las siguientes secciones se muestra el proceso de configuración del uso compartido de datos entre cuentas y la concesión del acceso de escritura en Amazon Redshift.

# Acciones del administrador de una cuenta consumidora
<a name="consumer-account-admin"></a>

Con Amazon Redshift, puede administrar las cuentas de los consumidores y controlar su acceso a los recursos de almacenamiento de datos.

**Si es el administrador de una cuenta consumidora**, siga estos pasos:

Para asociar uno o más recursos compartidos de datos que se comparten desde otras cuentas con toda la Cuenta de AWS o con espacios de nombres específicos de su cuenta, utilice la consola de Amazon Redshift.

Inicie sesión en [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/). Luego, asocie uno o más recursos compartidos de datos que se comparten desde otras cuentas con toda la Cuenta de AWS o con espacios de nombres específicos de su cuenta. Para obtener más información, consulte [Asociación de un recurso compartido de datos desde otra Cuenta de AWS en Amazon Redshift](writes-associating.md).

Después de asociar la Cuenta de AWS o espacios de nombres específicos, los recursos compartidos de datos están a su disposición para que los consuma. También puede cambiar la asociación del datashare en cualquier momento. Cuando se cambia la asociación de espacios de nombres individuales a una Cuenta de AWS, Amazon Redshift sobrescribe los espacios de nombres con la información de la Cuenta de AWS. Cuando se cambia la asociación de una Cuenta de AWS a espacios de nombres específicos, Amazon Redshift sobrescribe la información de la Cuenta de AWS con la información del espacio de nombres. Todos los espacios de nombres de la cuenta obtienen acceso a los datos.

# Acciones del administrador de consumidores
<a name="consumer-cluster-admin"></a>

Con Amazon Redshift, puede realizar tareas administrativas en los clústeres de consumidores para administrar la ingesta de datos y el procesamiento de cargas.

**Si es administrador de consumidores**, siga estos pasos:

1. Enumere los datashares que se ponen a su disposición y consulte su contenido. El contenido de los recursos compartidos de datos solo está disponible cuando el administrador de productores ha autorizado los recursos compartidos de datos y el administrador de consumidores ha aceptado y asociado los recursos compartidos de datos. Para obtener más información, consulte [DESC DATASHARE](r_DESC_DATASHARE.md) y [SHOW DATASHARES](r_SHOW_DATASHARES.md).

   En el siguiente ejemplo, se muestra la información de los datashares entrantes de un espacio de nombres productor específico. Cuando ejecuta DESC DATASHARE como administrador de consumidores, debe especificar el NAMESPACE y el ID de la cuenta para ver los recursos compartidos de datos entrantes. Para los recursos compartidos de datos salientes, especifique el nombre del recurso compartido de datos.

   ```
   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 los superusuarios del clúster pueden hacer esto. También puede utilizar SVV\$1DATASHARES para ver los datashares y SVV\$1DATASHARE\$1OBJECTS para ver los objetos que se encuentran dentro del datashare.

   En el siguiente ejemplo, se muestran los datashares entrantes de un clúster consumidor.

   ```
   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. Cree bases de datos locales que referencien los datashares. Especifique el NAMESPACE y el ID de la cuenta cuando cree la base de datos desde el recurso compartido de datos. Para obtener más información, consulte [CREATE DATABASE](r_CREATE_DATABASE.md).

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

   Si desea tener un control más detallado del acceso a los objetos de la base de datos local, utilice la cláusula WITH PERMISSIONS al crear la base de datos. De este modo, podrá conceder permisos en el nivel de objeto para los objetos de la base de datos en el paso 4. 

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

   Puede ver las bases de datos que creó a partir del datashare consultando la vista [SVV\$1REDSHIFT\$1DATABASES](r_SVV_REDSHIFT_DATABASES.md). Puede conectarse a estas bases de datos directamente o puede conectarse a una base de datos local en el clúster del consumidor y realizar una consulta entre bases de datos para consultar los datos de las bases de datos de recursos compartidos de datos. No puede crear un datashare encima de los objetos de base de datos creados a partir de un datashare existente. No obstante, puede copiar los datos en una tabla diferente en el clúster consumidor, llevar a cabo el procesamiento que sea necesario y, a continuación, compartir los objetos nuevos creados.

1. (Opcional) Cree esquemas externos para referenciar esquemas específicos de la base de datos consumidora importados en el clúster consumidor y para asignarles permisos pormenorizados. Para obtener más información, consulte [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md).

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

1. Conceda permisos en las bases de datos y las referencias de esquema creadas a partir de los recursos compartidos de datos a usuarios o roles del clúster del consumidor según sea necesario. Para obtener más información, consulte [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;
   ```

   Si ha creado su base de datos sin WITH PERMISSIONS, solo podrá asignar permisos a toda la base de datos creada a partir del recurso compartido de datos a los usuarios o roles. En algunos casos, necesita controles pormenorizados sobre un subconjunto de los objetos de base de datos creados a partir del datashare. Si es así, puede crear una referencia de esquema externo que apunte a esquemas específicos del recurso compartido de datos, como se describe en el paso anterior. Luego, puede proporcionar permisos pormenorizados en el nivel de esquema. También puede crear vistas de enlace de tiempo de ejecución encima de los objetos compartidos y utilizarlas para asignar permisos pormenorizados. También puede considerar la posibilidad de indicar a los clústeres productores que creen datashares adicionales en su nombre con el nivel de detalle requerido. Puede crear tantas referencias de esquema para la base de datos creada a partir del recurso compartido de datos como quiera.

   Si ha creado la base de datos con WITH PERMISSIONS en el paso 2, debe asignar permisos de nivel de objeto a los objetos de la base de datos compartida. Un usuario que solo tenga el permiso USAGE no podrá acceder a ningún objeto de una base de datos creada con WITH PERMISSIONS hasta que se le concedan permisos adicionales en el nivel de objeto.

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

1. Consulte los datos de los objetos compartidos que se encuentran en los datashares.

   Los usuarios y los roles que tengan permisos en las bases de datos del consumidor y los esquemas de los clústeres del consumidor pueden explorar y navegar por los metadatos de cualquier objeto compartido. También pueden navegar por los objetos locales de un clúster consumidor y explorarlos. Para ello, utilice controladores JDBC u ODBC, o vistas SVV\$1ALL y SVV\$1REDSHIFT.

   Los clústeres productores pueden tener muchos esquemas en la base de datos y muchas tablas y vistas dentro de cada esquema. Los usuarios del lado del consumidor solo pueden ver el subconjunto de objetos que se han puesto a disposición a través del datashare. Estos usuarios no pueden ver todos los metadatos del clúster productor. Este enfoque ayuda a proporcionar un control pormenorizado de la seguridad de los metadatos con el uso compartido de datos.

   Continúa conectándose a las bases de datos locales del clúster. No obstante, ahora, también es posible leer de las bases de datos y los esquemas que se crean a partir de los datashares utilizando la notación de tres partes database.schema.table. Puede realizar consultas que abarquen todas las bases de datos visibles para usted. Estas pueden ser bases de datos locales del clúster o bases de datos creadas a partir de los datashares. Los clústeres consumidores no pueden conectarse a las bases de datos que se hayan creado a partir de los datashares.

   Puede acceder a los datos mediante la cualificación completa. Para obtener más información, consulte [Ejemplos de consultas entre bases de datos](cross-database_example.md).

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

   Solo se pueden utilizar las instrucciones SELECT en los objetos compartidos. No obstante, puede crear tablas en el clúster consumidor consultando los datos de los objetos compartidos de una base de datos local diferente.

   Además de realizar consultas, los consumidores pueden crear vistas en los objetos compartidos. Solo se admiten las vistas de enlace en tiempo de ejecución o las vistas materializadas. Amazon Redshift no admite las vistas normales en los datos compartidos. Las vistas que crean los consumidores pueden abarcar varias bases de datos locales o bases de datos creadas a partir de datashares. Para obtener más información, consulte [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;
   ```