ALTER LISTING¶
Modifica as propriedades de uma listagem com um manifesto YAML em linha ou de um arquivo localizado em um local de estágio.
- Consulte também:
CREATE LISTING, DESCRIBE LISTING, SHOW LISTINGS, SHOW VERSIONS IN LISTING, DROP LISTING
Sintaxe¶
ALTER LISTING [ IF EXISTS ] <name> [ { PUBLISH | UNPUBLISH | REVIEW } ]
ALTER LISTING [ IF EXISTS ] <name> AS '<yaml_manifest_string>'
[ PUBLISH = { TRUE | FALSE } ]
[ REVIEW = { TRUE | FALSE } ]
[ COMMENT = '<string>' ]
ALTER LISTING <name> ADD VERSION [ [ IF NOT EXISTS ] <version_name> ]
FROM <yaml_manifest_stage_location>
[ COMMENT = '<string>' ]
ALTER LISTING [ IF EXISTS ] <name> { ADD | REMOVE } TARGETS <manifest>
ALTER LISTING [ IF EXISTS ] <name> RENAME TO <new_name>;
ALTER LISTING [ IF EXISTS ] <name> SET COMMENT = '<string>'
Parâmetros¶
name
Especifica o identificador (nome) da listagem que está sendo alterada.
{ PUBLISH | UNPUBLISH | REVIEW }
A ação a ser executada na listagem:
PUBLISH
Transforma uma listagem que não pode ser descoberta em uma listagem que pode ser descoberta.Especificar PUBLISH em uma listagem publicada anteriormente não tem efeito.
UNPUBLISH
Transforma uma listagem que pode ser descoberta em uma listagem que não pode ser descoberta por novos consumidores. Os consumidores existentes podem continuar acessando os dados associados a uma listagem não publicada.Especificar UNPUBLISH em uma listagem não publicada anteriormente não tem efeito.
Consulte também Cancelamento da publicação de uma listagem.
REVIEW
Envia a listagem para revisão.
yaml_manifest_string
O manifesto YAML para a listagem. Para conhecer os parâmetros do manifesto, consulte Listagem de referência de manifesto.
Os manifestos normalmente são fornecidos como cadeias de caracteres entre aspas de cifrão. Para obter mais informações, consulte Constantes de cadeias de caracteres entre cifrões.
ADD VERSION version_name
Especifica o identificador de versão exclusivo para a versão que está sendo adicionada. Se o identificador contiver espaços, caracteres especiais ou caracteres com letras maiúsculas e minúsculas, o identificador inteiro deverá ser colocado entre aspas duplas. Identificadores entre aspas duplas também diferenciam maiúsculas de minúsculas. Para obter informações sobre a sintaxe do identificador, consulte Requisitos para identificadores.
FROM 'yaml_manifest_stage_location'
Especifica o caminho para o arquivo manifest.yml do clone do repositório Git interno ou do Snowflake. Se as alterações exigirem a revisão do Marketplace Ops, use as operações REVIEW e PUBLISH.
{ ADD | REMOVE } TARGETS manifest
Adicione ou remova destinos de uma listagem usando o manifesto contendo somente os destinos que você deseja adicionar ou remover. Este manifesto parcial reutiliza as estruturas familiares
targets
,external_targets
eorganization_targets
, que já estão definidas na especificação do manifesto de listagem.A tabela abaixo lista as combinações de manifesto de listagem/manifesto de entrada não suportadas:
Nota
As listagens V2 ainda estão em versão preliminar. Após a ativação do recurso, todas as listagens subsequentes, sejam públicas ou privadas, serão criadas como listagens v2.
Versão de destinos de listagem externa
Manifesto de entrada
Resultado
Solução alternativa
Destinos V1
Destinos externos V2
Retorna um erro.
Forneça um manifesto de entrada da versão 1.
Destinos V2
Destinos V1
Retorna um erro.
Forneça um manifesto de entrada da versão 2.
Qualquer listagem externa
Meta no nível de organização que especifica uma organização sem contas.
Retorna um erro.
Não há suporte para alvos no nível de organização no momento.
Para listagens organizacionais, a tabela abaixo lista casos de uso sem suporte para adicionar e remover destinos:
Listagem externa
Manifesto de entrada
Adicionar ou remover
Resultado
Ação
Qualquer listagem de organizações
O manifesto tem o conjunto de campos
organization_user_group
.Ambos
Retorna um erro.
Remover o campo
organization_user_group
e tentar novamente.Conta ou conta e função
O manifesto tem o campo
all_internal_accounts
definido comoTRUE
.Remover
Retorna um erro.
Remover contas específicas e tentar novamente.
A listagem temo o campo
all_internal_accounts
definido comoTRUE
.O manifesto de entrada inclui uma conta ou uma conta e função.
Remover
Retorna um erro.
Substituir
all_internal_accounts
por contas específicas e tentar novamente.A conta não tem funções especificadas
O manifesto de entrada tem uma conta com funções.
Remover
Retorna um erro.
Remover a conta primeiro e depois adicionar funções específicas.
RENAME TO new_name
Altera o nome da listagem para
new_name
. Os nomes de listagem devem ser exclusivos. O novo identificador não pode ser usado se o identificador já estiver em uso para uma listagem diferente.
SET ...
Especifica uma (ou mais) propriedades a serem definidas para a listagem (separadas por espaços em branco, vírgulas ou novas linhas).
COMMENT = 'string_literal'
Adiciona um comentário ou substitui o comentário existente de uma listagem existente.
PUBLISH = { TRUE | FALSE }
Especifica como a listagem deve ser publicada.
Se TRUE, a listagem é publicada imediatamente na listagem do Marketplace Ops para revisão.
Padrão: TRUE.
REVIEW = { TRUE | FALSE }
Especifica se a listagem deve ou não ser enviada para revisão no Marketplace Ops.
Padrão: TRUE.
Diferentes combinações de valores para as propriedades PUBLISH e REVIEW resultam nos seguintes comportamentos:
PUBLISH |
REVIEW |
Comportamento |
---|---|---|
TRUE |
TRUE |
Solicite uma revisão e publique imediatamente após a revisão. |
TRUE |
FALSE |
Resulta em um erro. Você não pode publicar uma listagem no Snowflake Marketplace sem revisão. |
FALSE |
TRUE |
Solicite uma revisão sem publicar automaticamente após a revisão. |
FALSE |
FALSE |
Salve sua listagem como rascunho sem solicitar revisão ou publicação. |
Notas de uso¶
As listagens podem ser renomeadas somente no estado DRAFT.
Ao definir a versão ativa do manifesto do formato YAML para uma listagem, você deve usar
COMMIT
para aplicar as alterações ouABORT
para descartar as alterações.
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
Notas |
---|---|---|
OWNERSHIP ou MODIFY |
Sobre a listagem sendo modificada. |
Se estiver usando o comando ALTER para modificar o conteúdo do manifesto para o preenchimento automático, você deverá usar uma função com os privilégios delegados necessários para configurar o preenchimento automático entre nuvens. Consulte Delegar privilégios para configurar o preenchimento automático.
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Exemplos¶
Altera a listagem mylisting
para usar um arquivo de manifesto atualizado:
ALTER LISTING mylisting AS $$ title: "MyListing" subtitle: "Subtitle for MyListing" description: "Description or MyListing" listing_terms: type: "STANDARD" targets: accounts: ["Org1.Account1"] usage_examples: - title: "this is a test sql" description: "Simple example" query: "select *" $$;
Envia a listagem mylisting
para revisão:
ALTER LISTING mylisting REVIEW;
Altera a listagem mylisting
ao publicá-la:
ALTER LISTING mylisting PUBLISH;
Altera a listagem mylisting
ao cancelar sua publicação:
ALTER LISTING mylisting UNPUBLISH;
Altera a listagem mylisting
ao definir um novo comentário:
ALTER LISTING mylisting SET COMMENT = 'My listing is ready!';
Adiciona uma nova versão do local de estágio do arquivo de manifesto YAML especificado:
ALTER LISTING mylisting ADD VERSION V3 FROM @dbforstage.public.listingstage/listingmanifests;
Altera uma listagem para que os destinos recebam o manifesto de entrada e o fundam com os destinos de listagem existentes:
ALTER LISTING mylisting ADD TARGETS $$manifest$$;
Adiciona destinos a uma listagem externa de V1:
ALTER LISTING mylisting ADD TARGETS $$ targets: accounts: ["Org1.Account1", "Org2.Account2"] $$;
Adiciona destinos a uma listagem externa da V2:
ALTER LISTING mylisting ADD TARGETS $$ external_targets: access: - organization: OrgName2 accounts: [acc1, acc2] $$;
Ao adicionar destinos, isso pega o manifesto de entrada e o mescla com o organization_targets
existente.
ALTER LISTING mylisting ADD TARGETS $$ organization_targets: access: - account: account2 roles: [role1, role2] $$;
Remove um destino:
ALTER LISTING mylisting REMOVE TARGETS $$manifest$$;
Remove destinos de uma listagem V1 externa:
ALTER LISTING mylisting REMOVE TARGETS $$ targets: accounts: ["Org1.Account1", "Org2.Account2"] $$;
Remove destinos de uma listagem V2 externa:
ALTER LISTING mylisting REMOVE TARGETS $$ external_targets: access: - organization: OrgName2 accounts: [acc1, acc2] $$;
Remove destinos de uma listagem organizacional:
ALTER LISTING mylisting REMOVE TARGETS $$ organization_targets: access: - account: account1 $$;