CREATE OR ALTER VERSIONED SCHEMA

Cria um novo esquema com versão ou modifica um esquema com versão existente. Este comando é suportado apenas para instâncias de aplicativos no Native Apps Framework.

Consulte também:

CREATE APPLICATION, CREATE APPLICATION PACKAGE

Sintaxe

CREATE OR ALTER VERSIONED SCHEMA <name>
  [ WITH MANAGED ACCESS ]
  [ DATA_RETENTION_TIME_IN_DAYS = ]
  [ MAX_DATA_EXTENSION_TIME_IN_DAYS = ]
  [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
  [ COMMENT = '<string_literal>' ]
Copy

Parâmetros obrigatórios

name

Especifica o identificador do esquema; deve ser único para a instância do aplicativo no qual o esquema é criado.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

Parâmetros opcionais

WITH MANAGED ACCESS

Especifica um esquema gerenciado com versão. Os esquemas de acesso gerenciado com versão centralizam a gestão de privilégios com o proprietário do esquema.

Em esquemas regulares com versão, o proprietário de um objeto (ou seja, a função que tem o privilégio OWNERSHIP no objeto) pode conceder outros privilégios em seus objetos a outras funções.

Em esquemas administrados, o proprietário do esquema administra todas as concessões de privilégios, incluindo futuras concessões, nos objetos no esquema. Os proprietários dos objetos retêm os privilégios OWNERSHIP nos objetos; no entanto, somente o proprietário do esquema pode administrar as concessões de privilégios nos objetos.

DATA_RETENTION_TIME_IN_DAYS = integer

Especifica o número de dias para os quais as ações do Time Travel (CLONE e UNDROP) podem ser executadas no esquema, bem como especifica o tempo padrão de retenção do Time Travel para todas as tabelas criadas no esquema. Para obter mais detalhes, consulte Compreensão e uso do Time Travel.

Para uma descrição detalhada deste parâmetro de nível de objeto, bem como mais informações sobre parâmetros de objeto, consulte Parâmetros. Para obter mais informações sobre o tempo de retenção em nível de tabela, consulte CREATE TABLE e Compreensão e uso do Time Travel.

Valores:

  • Standard Edition: 0 ou 1

  • Enterprise Edition:

    • 0 a 90 para esquemas permanentes

    • 0 ou 1 para esquemas transitórios

Padrão:

  • Standard Edition: 1

  • Enterprise Edition (ou superior): 1 (a menos que um valor padrão diferente tenha sido especificado no nível de banco de dados ou de conta)

Nota

Um valor de 0 efetivamente desabilita o Time Travel para o esquema.

MAX_DATA_EXTENSION_TIME_IN_DAYS = integer

Parâmetro de objeto que especifica o número máximo de dias para os quais o Snowflake pode estender o período de retenção de dados das tabelas no esquema para evitar que os fluxos nas tabelas se tornem obsoletos.

Para uma descrição detalhada deste parâmetro, consulte MAX_DATA_EXTENSION_TIME_IN_DAYS.

DEFAULT_DDL_COLLATION = 'collation_specification'

Especifica a especificação de agrupamento padrão para todas as tabelas adicionadas ao esquema. O padrão pode ser anulado no nível da tabela individual.

Para obter mais detalhes sobre o parâmetro, consulte DEFAULT_DDL_COLLATION.

COMMENT = 'string_literal'

Especifica um comentário para o esquema.

Padrão: sem valor

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

CREATE SCHEMA

Aplicativo

Se o esquema já existir e você desejar modificá-lo, será necessário o privilégio OWNERSHIP no aplicativo.

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.

Nota

Embora você normalmente crie um esquema com versão no script de configuração, um esquema com versão pode ser criado:

  • A partir do procedimento armazenado dos direitos do proprietário

  • Na conta do consumidor usando uma função de aplicativo que tem o privilégio CREATE SCHEMA no aplicativo.

Notas de uso

  • Se o esquema não existir, o Snowflake criará um esquema com versão.

  • Se o esquema existir e já corresponder ao comando, o Snowflake verá isso como uma operação não permitida.

  • Se o esquema existir e não corresponder ao comando, o Snowflake modificará o esquema com versão para corresponder ao comando.