ALTER DATASHARE - Amazon Redshift

ALTER DATASHARE

Altera a definição de um datashare. Você pode adicionar ou remover objetos usando ALTER DATASHARE. Você só pode alterar uma unidade de compartilhamento de dados no banco de dados atual. Adicione ou remova objetos do banco de dados associado a uma unidade de compartilhamento de dados. O proprietário do datashare com as permissões necessárias nos objetos de datashare a serem adicionados ou removidos pode alterar o datashare.

Privilégios obrigatórios

A seguir estão os privilégios obrigatórios para ALTER DATASHARE:

  • Superusuário.

  • Usuário com o privilégio ALTER DATASHARE.

  • Usuários que tenham privilégios ALTER ou ALL na unidade de compartilhamento de dados.

  • Para adicionar objetos específicos a uma unidade de compartilhamento de dados, os usuários devem ter o privilégio nos objetos. Neste caso, os usuários devem ser os proprietários de objetos ou ter privilégios SELECT, USAGE ou ALL nos objetos.

Sintaxe

A sintaxe a seguir ilustra como adicionar ou remover objetos da unidade de compartilhamento de dados.

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 [, ...] }

A sintaxe a seguir ilustra como configurar as propriedades da unidade de compartilhamento de dados.

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

Parâmetros

datashare_name

Nome do datashare a ser alterado.

ADD | REMOVE

Uma cláusula que especifica se deve adicionar ou remover objetos do datashare.

TABLE schema.table [, ...]

O nome da tabela ou da exibição no esquema especificado a ser adicionado ao datashare.

SCHEMA schema [, ...]

O nome do esquema a ser adicionado ao datashare.

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

O nome da função SQL definida pelo usuário a ser adicionada à unidade de compartilhamento de dados.

ALL TABLES IN SCHEMA schema [, ...]

Uma cláusula que especifica se deve adicionar todas as tabelas e exibições no esquema especificado ao datashare.

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

Uma cláusula que especifica a adição de todas as funções no esquema especificado ao datashare.

[ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]

Uma cláusula que especifica se um datashare pode ser compartilhado para clusters acessíveis publicamente.

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

Uma cláusula que especifica se deseja adicionar futuras tabelas, exibições ou funções definidas pelo usuário (UDFs) do SQL criadas no esquema especificado ao datashare. Tabelas atuais, exibições ou UDFs SQL no esquema especificado não são adicionadas ao datashare. Somente superusuários podem alterar essa propriedade para cada par datashare-schema. Por padrão, a cláusula INCLUDENEW está definida como falsa.

Observações de uso do ALTER DATASHARE

  • Os seguintes usuários podem alterar um datashare:

    • Um superusuário

    • O proprietário do datashare

    • Usuários com privilégios ALTER ou ALL na unidade de compartilhamento de dados

  • Para adicionar objetos específicos a uma unidade de compartilhamento de dados, esses usuários devem ter o privilégio correto nos objetos. Os usuários devem ser os proprietários de objetos ou ter privilégios SELECT, USAGE ou ALL nos objetos.

  • Você pode compartilhar esquemas, tabelas, exibições regulares, exibições de vinculação tardia, visões materializadas e funções definidas pelo usuário (UDFs) do SQL. Adicione um esquema à unidade de compartilhamento de dados antes de adicionar outros objetos ao esquema.

    Quando você adiciona um esquema, o Amazon Redshift não adiciona todos os objetos abaixo dele. Você deve adicioná-las explicitamente.

  • Recomendamos criar unidades de compartilhamento de dados AWS Data Exchange com a configuração publicamente acessível ativada.

  • Em geral, recomendamos não alterar uma unidade de compartilhamento de dados AWS Data Exchange para desativar a acessibilidade pública usando a instrução ALTER DATASHARE. Se você fizer isso, as Contas da AWS que têm acesso à unidade de compartilhamento de dados perderão o acesso se os clusters forem acessíveis ao público. Executar esse tipo de alteração pode violar os termos do produto de dados no AWS Data Exchange. Veja a seguir uma exceção a essa recomendação.

    O exemplo a seguir mostra um erro quando uma unidade de compartilhamento de dados do AWS Data Exchange é criada com a configuração desativada.

    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'

    Para permitir a alteração de uma unidade de compartilhamento de dados do AWS Data Exchange para desativar a configuração publicamente acessível, definir a variável a seguir e executar a instrução ALTER DATASHARE novamente.

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

    Nesse caso, o Amazon Redshift gera um valor único aleatório para definir a variável de sessão para permitir ALTER DATASHARE SET PUBLICACCESSIBLE FALSE para uma unidade de compartilhamento de dados do AWS Data Exchange.

Exemplos

O exemplo a seguir adiciona o esquema public à unidade de compartilhamento de dados salesshare.

ALTER DATASHARE salesshare ADD SCHEMA public;

O exemplo a seguir adiciona a tabela public.tickit_sales_redshift à unidade de compartilhamento de dados salesshare.

ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift;

O exemplo a seguir adiciona todas as tabelas à unidade de compartilhamento de dados salesshare.

ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;

O exemplo a seguir remove a tabela public.tickit_sales_redshift da unidade de compartilhamento de dados salesshare.

ALTER DATASHARE salesshare REMOVE TABLE public.tickit_sales_redshift;