API Collaboration Snowflake Data Clean Rooms

Introdução

Esta é a página de referência da API Collaboration Snowflake Data Clean Rooms. Essa API usa os esquemas COLLABORATION e REGISTRY.

Nota

Você deve desabilitar as funções secundárias em seu ambiente ao usar a API Collaboration:

USE SECONDARY ROLES NONE;

Para saber como configurar seu ambiente de desenvolvimento, consulte Configurando seu ambiente.

Para saber como gerenciar o acesso aos procedimentos da Collaboration API, consulte Usar privilégios DCR para gerenciar privilégios de conta, objeto e procedimento.

Folha de referências de metadados

Veja como encontrar algumas informações frequentemente buscadas sobre uma colaboração:

Para aprender isso…

Chame isto

Em quais colaborações eu posso ingressar?

VIEW_COLLABORATIONS – procure por colaborações em que a coluna collaboration_name seja NULL.

Em quais colaborações eu ingressei?

VIEW_COLLABORATIONS – procure por colaborações em que a coluna collaboration_name não seja NULL, o que pode significar que você criou ou ingressou na colaboração.

Quais colaborações são minhas?

VIEW_COLLABORATIONS – consulte a coluna owner_account.

Qual é o status de todos os colaboradores em uma colaboração?

GET_STATUS

Qual é meu status de ingressão ou criação de uma colaboração?

GET_STATUS ou VIEW_COLLABORATIONS

Quem é o proprietário de uma determinada colaboração?

GET_STATUS – procure por OWNER na coluna roles.

Qual é a minha função de colaboração em uma determinada colaboração?

GET_STATUS – consulte a coluna roles.

Quais funções de colaboração são atribuídas em uma determinada colaboração?

GET_STATUS – consulte a coluna roles.

Qual é a especificação em uma determinada colaboração?

VIEW_COLLABORATIONS – consulte a coluna collaboration_spec.

A especificação está atualizada?

Não há como saber se uma determinada especificação tem alterações em andamento, mas você pode chamar VIEW_COLLABORATIONS para ver quando as últimas atualizações foram aplicadas.

Quais solicitações com atualizações pendentes eu tenho?

VIEW_UPDATE_REQUESTS. Procure as linhas em que STATUS = PENDING_MY_APPROVAL.

Mostrar para mim a especificação de uma determinada colaboração

REVIEW retorna a especificação da colaboração. Se você já chamou REVIEW ou ingressou na colaboração, chame o seguinte comando SQL pelo nome da colaboração conforme indicado:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.
  VIEW_COLLABORATIONS() ->>
    SELECT "COLLABORATION_SPEC" FROM $1
      WHERE "SOURCE_NAME" = <collaboration name>;

Procedimentos de modelos

REGISTER_TEMPLATE

Esquema:

REGISTRY

Registra um modelo para permitir que seja usado em uma colaboração. Cada modelo registrado deve ter uma combinação única de nome e versão para todos os modelos em todos os registros da sua conta.

Sintaxe

REGISTER_TEMPLATE( ['<registry_name>' ,] <template_spec> )

Argumentos

registry_name (opcional)

Nome de um registro personalizado no qual registrar o modelo. Se não for especificado, registra o modelo no registro da conta padrão.

template_spec

Definição do modelo no formato YAML, como uma cadeia de caracteres.

Retornos

O ID de um modelo para usar na especificação da colaboração.

Exemplos

Registrar um modelo no registro padrão:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);

Registrar um modelo em um registro personalizado:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando os procedimentos a seguir.

Para registrar objetos no registro padrão:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER TEMPLATE', 'role name')

Para registrar itens em um registro personalizado:

  • Você tem privilégios de leitura e gravação em qualquer registro personalizado criado por você mesmo.

  • Para acessar um registro personalizado criado por outro usuário, você precisa de GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_REGISTERED_TEMPLATES

Esquema:

REGISTRY

Lista todos os modelos que você registrou. Para registrar um modelo, chame REGISTRY.REGISTER_TEMPLATE.

Sintaxe

VIEW_REGISTERED_TEMPLATES( [ '<registry_name>' ] )

Argumentos

registry_name (opcional)

Nome de um registro personalizado do qual listar os modelos. Se não for especificado, listará os modelos do registro de contas padrão.

Retornos

Uma tabela que lista os detalhes de todos os modelos que você registrou nesta conta. A tabela inclui as seguintes colunas:

  • TEMPLATE_ID: ID do modelo.

  • NAME: nome do modelo.

  • VERSION: versão do modelo.

  • TEMPLATE_SPEC: especificação YAML completa do modelo.

  • REGISTRY: registro no qual o modelo foi registrado.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_TEMPLATES();

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir.

Para ver os itens no registro padrão:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED TEMPLATES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Para ver os itens em um registro personalizado:

  • Você tem privilégios de leitura e gravação em qualquer registro personalizado criado por você mesmo.

  • Para acessar um registro personalizado criado por outro usuário, você precisa de GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name').


ADD_TEMPLATE_REQUEST

Esquema:

COLLABORATION

Envia uma solicitação para vincular um modelo a uma colaboração existente. Se o remetente for afetado pela solicitação, ele aprovará automaticamente a solicitação. Todos os outros colaboradores afetados devem aprovar a solicitação para que a alteração seja aplicada. Todos os colaboradores precisam chamar esse procedimento para vincular um modelo a uma colaboração existente, inclusive o proprietário da colaboração.

Para adicionar outros compartilhadores de modelo, você pode chamar esse procedimento novamente com os respectivos aliases. Cada chamada adiciona os usuários listados em share_with à lista existente de compartilhadores.

Para ver o status da solicitação, chame VIEW_UPDATE_REQUESTS.

Consulte o fluxo de vinculação de modelo.

Sintaxe

ADD_TEMPLATE_REQUEST( <collaboration_name>, <template_id>, <share_with> )

Argumentos

collaboration_name

Nome da colaboração à qual o modelo será vinculado.

template_id

ID do modelo a ser vinculado à colaboração. Registre o modelo para obter esse valor.

share_with

Matriz de aliases de executores de análise com quem compartilhar o modelo. Os colaboradores listados aqui serão adicionados além de todos os outros colaboradores associados ao modelo. Todos os colaboradores listados aqui devem ser executores de análise, ou o procedimento falhará sem compartilhar o modelo com ninguém.

Retornos

Uma mensagem de sucesso de cadeia de caracteres.

Exemplo

-- Ask to link the template only for Collaborator3 in this collaboration.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ADD_TEMPLATE_REQUEST(
  $collaboration_name,
  $template_alias,
  ['Collaborator3']
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando os seguintes procedimentos:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • Um dos seguintes privilégios:

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name'), além de todos os privilégios adicionais no nível da conta que devem ser concedidos manualmente à função.

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name'), além de todos os privilégios adicionais no nível da conta que devem ser concedidos manualmente à função.

  • Se o modelo estiver em um registro personalizado, você também deverá ter GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', 'registry name', 'role name').


REMOVE_TEMPLATE

Esquema:

COLLABORATION

Solicitação assíncrona para remover um modelo de uma determinada colaboração para colaboradores especificados. Somente o colaborador que registrou o modelo pode remover um modelo. Nenhuma aprovação é necessária de outra pessoa para remover um modelo que você registrou. Quando um modelo é removido para um colaborador, esse colaborador não pode ver ou usar o modelo.

Sintaxe

REMOVE_TEMPLATE( <collaboration_name>, <template_id>, <remove_for> )

Argumentos

collaboration_name

Nome da colaboração da qual remover o modelo.

template_id

ID do modelo para remover da colaboração.

remove_for

Matriz de um ou mais aliases de executores de análise nesta colaboração que não poderão mais ver ou usar este modelo.

Retornos

Uma mensagem de sucesso de cadeia de caracteres. Para ver se um modelo foi removido de um colaborador, exiba a especificação da colaboração.

Exemplo

-- Prevent collaborator_1234 from using the specified template
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REMOVE_TEMPLATE(
  $collaboration_name,
  $template_id,
  ['collaborator_1234']
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando os seguintes procedimentos:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • Um dos seguintes privilégios:

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name'), além de todos os privilégios adicionais no nível da conta que devem ser concedidos manualmente à função.

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name'), além de todos os privilégios adicionais no nível da conta que devem ser concedidos manualmente à função.

  • Se o modelo estiver em um registro personalizado ou fizer referência a uma especificação de código em um registro personalizado, você também deverá ter GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', 'registry name', 'role name').


VIEW_TEMPLATES

Esquema:

COLLABORATION

Mostra todos os modelos que você pode executar ou que enviou para a colaboração especificada.

Sintaxe

VIEW_TEMPLATES( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração. Você deve revisar ou ingressar na colaboração antes de listar seus modelos.

Retornos

Uma tabela que lista informações sobre os modelos que você pode executar nesta colaboração, incluindo os que você registrou. A tabela inclui as seguintes colunas:

  • template_id: ID do modelo. Passe isso para o campo template ou parâmetro template_id do seu comando RUN.

  • template_spec: a especificação do modelo para esse modelo, que inclui o JinjaSQL completo para esse modelo.

  • parameters: uma descrição de todos os argumentos aceitos por esse modelo, no formato JSON. As informações sobre cada parâmetro incluem o nome, o valor padrão, a descrição escrita pelo provedor do modelo e se ele é obrigatório. Passe os valores para esses parâmetros no seu comando RUN.

  • shared_by: o colaborador que registrou esse modelo.

  • shared_with: os colaboradores com os quais esse modelo é compartilhado.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_TEMPLATES(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW TEMPLATES', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_TEMPLATE_AUTO_APPROVAL

Esquema:

COLLABORATION

Faz com que todas as solicitações de atualização de modelo enviadas por outros colaboradores sejam aprovadas automaticamente. As solicitações ainda aparecerão no log de solicitações. Isso afeta apenas as solicitações enviadas depois que a aprovação automática foi habilitada.

Sintaxe

ENABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração.

Retornos

Uma mensagem de sucesso de cadeia de caracteres.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


DISABLE_TEMPLATE_AUTO_APPROVAL

Esquema:

COLLABORATION

Desabilita a aprovação automática para solicitações de modelo feitas por outros colaboradores. Todas as solicitações futuras devem ser aprovadas manualmente chamando APPROVE_UPDATE_REQUEST.

Sintaxe

DISABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração.

Retornos

Uma mensagem de sucesso de cadeia de caracteres.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Procedimentos de oferta de dados

REGISTER_DATA_OFFERING

Esquema:

REGISTRY

Registra uma oferta de dados para que ela possa ser vinculada a uma definição de colaboração. Não é possível cancelar o registro de uma oferta de dados registrada. Não é possível substituir uma oferta de dados existente, mas você pode registrar uma nova com o mesmo nome e uma nova versão. Criar uma nova versão de uma oferta de dados não remove as versões anteriores.

Cada oferta de dados deve ter uma combinação exclusiva de nome e versão para todas as ofertas de dados em todos os registros da sua conta.

Se você quiser compartilhar esta tabela com outras pessoas na colaboração, inclua-a na especificação da colaboração antes que a colaboração seja criada.

Você deve ter o privilégio REFERENCE_USAGE com GRANT OPTION em todos os dados que você compartilha em uma colaboração. Caso contrário, você receberá um erro de «concessão de uso de referência ausente» ao tentar ingressar na colaboração ou registrar o objeto. Saiba como resolver esse problema.

Sintaxe

REGISTER_DATA_OFFERING( ['<registry_name>' ,] <data_offering_spec> )

Argumentos

registry_name (opcional)

Nome de um registro personalizado no qual registrar a oferta de dados. Se não for especificado, registra a oferta de dados no registro da conta padrão.

data_offering_spec

Uma definição de oferta de dados no formato YAML que descreve a oferta de dados.

Retornos

O ID da oferta de dados para usar no campo data_offerings.id de uma colaboração.

Exemplos

Registrar uma oferta de dados no registro padrão:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );

Registrar uma oferta de dados em um registro personalizado:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    'my_custom_registry',
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando os procedimentos a seguir.

Para registrar uma oferta de dados no registro padrão:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER DATA OFFERING', 'role name')

Para registrar itens em um registro personalizado:

  • Você tem privilégios de leitura e gravação em qualquer registro personalizado criado por você mesmo.

  • Para acessar um registro personalizado criado por outro usuário, você precisa de GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_REGISTERED_DATA_OFFERINGS

Esquema:

REGISTRY

Lista todas as ofertas de dados que você registrou. Para visualizar as ofertas de dados em uma colaboração vinculada por outras pessoas, chame COLLABORATION.VIEW_DATA_OFFERINGS.

Sintaxe

VIEW_REGISTERED_DATA_OFFERINGS( [ '<registry_name>' ] )

Argumentos

registry_name (opcional)

Nome de um registro personalizado do qual listar as ofertas de dados. Se não for especificado, listará as ofertas de dados do registro de contas padrão.

Retornos

Uma tabela que lista os detalhes de todas as ofertas de dados que você registrou nesta conta. A tabela inclui as seguintes colunas:

  • DATA_OFFERING_ID: ID da oferta de dados.

  • NAME: nome da oferta de dados.

  • VERSION: versão da oferta de dados.

  • DATA_OFFERING_SPEC: especificação YAML completa da oferta de dados.

  • REGISTRY: registro no qual a oferta de dados está registrada.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS();

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir.

Para ver os itens no registro padrão:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED DATA OFFERINGS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Para ver os itens em um registro personalizado:

  • Você tem privilégios de leitura e gravação em qualquer registro personalizado criado por você mesmo.

  • Para acessar um registro personalizado criado por outro usuário, você precisa de GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_DATA_OFFERINGS

Esquema:

COLLABORATION

Lista todas as ofertas de dados presentes em uma colaboração especificada que você pode acessar como executor de análise ou que você mesmo vinculou. Para ver apenas as ofertas de dados que você registrou, chame REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS.

Você poderá ver as ofertas de dados do colaborador X somente depois que X tiver ingressado na colaboração.

Sintaxe

VIEW_DATA_OFFERINGS( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração a ser explorada.

Retornos

Informações sobre todas as ofertas de dados na colaboração especificada. A tabela inclui as seguintes colunas:

  • template_view_name: o nome de exibição totalmente qualificado utilizado para fazer referência a ofertas ao chamar RUN para consultar usando um modelo. Passe este nome para o campo source_tables na especificação RUN.

  • template_join_columns: nomes das colunas nesta tabela que podem ser utilizadas em junções em consultas baseadas em modelo.

  • analysis_allowed_columns: nomes das colunas nesta tabela que podem ser projetadas em consultas baseadas em modelo.

  • activation_allowed_columns: nomes das colunas nesta tabela que podem ser ativadas.

  • freeform_sql_view_name: o nome de exibição totalmente qualificado utilizado em consultas SQL de forma livre, quando o conjunto de dados é compatível com consultas SQL de forma livre. Esta célula estará vazia se o conjunto de dados não oferecer consultas SQL de forma livre.

  • freeform_sql_column_policies: uma representação JSON de todas as políticas de coluna de forma livre nesta colaboração, inseridas por tipo de política.

  • shared_by: o colaborador que vinculou esta oferta de dados.

  • shared_with: quem pode usar os dados em uma análise. Se esse valor for LOCAL, o conjunto de dados local não foi compartilhado com nenhum colaborador, exceto a parte que hospeda os dados.

  • data_offering_id: o ID exclusivo desta oferta de dados, gerado quando ela foi registrada.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_DATA_OFFERINGS(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW DATA OFFERINGS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Procedimentos de função personalizados

REGISTER_CODE_SPEC

Esquema:

REGISTRY

Registra um pacote de código. Isso armazena o código no ambiente de salas limpas na tabela REGISTRY.CODE_SPECS. Depois que uma especificação de código é registrada, ela pode ser usada por um modelo.

Cada especificação de código registrada deve ter uma combinação de nome e versão exclusiva em todos os registros da sua conta.

Sintaxe

REGISTER_CODE_SPEC( ['<registry_name>' ,] <code_spec> )

Argumentos

registry_name (opcional)

Nome de um registro personalizado no qual registrar esta especificação de código. Se não for especificado, registra o pacote de código no registro de contas padrão.

code_spec

Definição da especificação do pacote de código no formato YAML, como uma cadeia de caracteres.

Retornos

ID da especificação do pacote de código gerado.

Exemplos

Registrar um pacote de código no registro padrão:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_CODE_SPEC(
  $$
  api_version: 2.0.0
  spec_type: code_spec
  name: custom_udf
  version: v1
  description: Custom UDF for data normalization

  functions:
    - name: normalize_value
      type: UDF
      language: PYTHON
      runtime_version: "3.10"
      handler: normalize
      arguments:
        - name: value
          type: FLOAT
        - name: min_val
          type: FLOAT
        - name: max_val
          type: FLOAT
      returns: FLOAT
      code_body: |
        def normalize(value, min_val, max_val):
            if max_val == min_val:
                return 0.0
            return (value - min_val) / (max_val - min_val)
  $$
);

Registrar um pacote de código em um registro personalizado:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_CODE_SPEC(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: code_spec
  name: custom_udf
  version: v1
  description: Custom UDF for data normalization

  functions:
    - name: normalize_value
      type: UDF
      language: PYTHON
      runtime_version: "3.10"
      handler: normalize
      arguments:
        - name: value
          type: FLOAT
        - name: min_val
          type: FLOAT
        - name: max_val
          type: FLOAT
      returns: FLOAT
      code_body: |
        def normalize(value, min_val, max_val):
            if max_val == min_val:
                return 0.0
            return (value - min_val) / (max_val - min_val)
  $$
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando os procedimentos a seguir.

Para registrar objetos no registro padrão:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER CODE SPEC', 'role name')

Para registrar itens em um registro personalizado:

  • Você tem privilégios de leitura e gravação em qualquer registro personalizado criado por você mesmo.

  • Para acessar um registro personalizado criado por outro usuário, você precisa de GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_REGISTERED_CODE_SPECS

Esquema:

REGISTRY

Lista todas as especificações de pacotes de código registradas por esta função no registro de contas local.

Sintaxe

VIEW_REGISTERED_CODE_SPECS( [ '<registry_name>' ] )

Argumentos

registry_name (opcional)

Nome de um registro personalizado para listar pacotes de código. Se não for especificado, listará os pacotes de código do registro de contas padrão.

Retornos

Uma tabela que lista os detalhes de todos os pacotes de código que você registrou nesta conta. A tabela inclui as seguintes colunas:

  • code_spec_id: ID da especificação do pacote de código.

  • name: Nome da especificação do pacote de código.

  • version: Versão da especificação do pacote de código.

  • code_spec: Especificação YAML completa da especificação do pacote de código.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_CODE_SPECS();

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir.

Para ver os itens no registro padrão:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED CODE SPECS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Para ver os itens em um registro personalizado:

  • Você tem privilégios de leitura e gravação em qualquer registro personalizado criado por você mesmo.

  • Para acessar um registro personalizado criado por outro usuário, você precisa de GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_CODE_SPECS

Esquema:

COLLABORATION

Retorna todas as especificações de pacotes de código referenciadas por qualquer modelo que você criou ou pode executar na colaboração especificada.

Sintaxe

VIEW_CODE_SPECS( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração.

Retornos

Uma tabela que lista os pacotes de código disponíveis na colaboração especificada. A tabela inclui as seguintes colunas:

  • code_spec_id: ID desta especificação de pacote de código.

  • code_spec: Especificação YAML completa da especificação do pacote de código.

  • shared_by: alias do colaborador que compartilhou a especificação do pacote de código.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_CODE_SPECS(
  $collaboration_id
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW CODE SPECS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Atualizar os procedimentos de solicitação

Esses procedimentos são utilizados ​​para gerenciar solicitações de atualização de colaboração que exigem aprovação, como o fluxo de vinculação de modelo.

VIEW_UPDATE_REQUESTS

Esquema:

COLLABORATION

Veja todas as solicitações de atualização que você criou, ou que pode aprovar ou negar, na colaboração especificada. Isso inclui todas as alterações de colaboração, como a adição de ofertas de dados, modelos e pacotes de código. Esse procedimento mostra o status da atualização. Pode levar alguns segundos para que uma solicitação de atualização apareça na lista de solicitações; portanto, você pode não ver uma solicitação que acabou de enviar.

Consulte o fluxo de vinculação de modelo.

Sintaxe

VIEW_UPDATE_REQUESTS( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração.

Retornos

Uma tabela de solicitações de atualização enviadas nesta colaboração. As informações incluem:

  • id: o ID da solicitação. Use-o para aprovar ou negar uma solicitação.

  • type: o tipo de solicitação. Os seguintes valores são suportados:

    • Adicionar modelo

    • Vincular oferta de dados

    • Desvincular oferta de dados

    • Remover modelo

  • status: o status atual da solicitação. Os seguintes status podem ser relatados:

    • REQUESTED: a solicitação foi enviada.

    • PENDING_MY_APPROVAL: a solicitação está aguardando sua aprovação ou rejeição.

    • PENDING_PARTNER_APPROVAL: você aprovou a solicitação, mas a solicitação ainda precisa ser aprovada por um ou mais colaboradores.

    • REJECTED: alguém na colaboração rejeitou a solicitação.

    • APPROVED: todos os aprovadores necessários aprovaram a solicitação.

    • COMPLETED: a ação de atualização foi concluída e as alterações foram aplicadas à colaboração. Para modelos que incluem um pacote de código, você ainda deve verificar o estado da atualização para saber quando o pacote de código estará pronto para ser chamado.

    • FAILED: a ação de atualização falhou. Consulte a coluna DETAILS para obter detalhes da falha.

  • approval_log: log de todas as aprovações e rejeições da solicitação. Se a solicitação foi rejeitada, o motivo apresentado pela parte que a rejeitou também é exibido aqui.

  • details: os detalhes específicos do tipo de solicitação, como o nome do modelo, a descrição e com quem ela foi compartilhada para uma solicitação «Add Template».

  • spec: os detalhes do recurso que está sendo atualizado, como a especificação do modelo para uma solicitação «Add Template».

  • updated_on: o carimbo de data/hora em que a última ação foi executada na solicitação (por exemplo, aprovação ou rejeição).

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_UPDATE_REQUESTS(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW UPDATE REQUESTS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


APPROVE_UPDATE_REQUEST

Esquema:

COLLABORATION

Aprova uma solicitação de atualização de colaboração. Veja sua lista de solicitações pendentes chamando VIEW_UPDATE_REQUESTS. Depois de aprovar uma solicitação, você não poderá rejeitá-la mais tarde.

Todos os colaboradores afetados devem aprovar uma solicitação para que a alteração seja realmente aplicada à colaboração.

Consulte o fluxo de vinculação de modelo.

Sintaxe

APPROVE_UPDATE_REQUEST( <collaboration_name>, <request_id> )

Argumentos

collaboration_name

Nome da colaboração.

request_id

O ID da solicitação.

Retornos

Uma mensagem de sucesso de cadeia de caracteres.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.APPROVE_UPDATE_REQUEST(
  $collaboration_name,
  $request_id
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REJECT_UPDATE_REQUEST

Esquema:

COLLABORATION

Rejeita uma solicitação de atualização de colaboração. Uma única rejeição impede que a alteração seja aplicada à colaboração. Você não pode aprovar uma solicitação depois de rejeitá-la.

Sintaxe

REJECT_UPDATE_REQUEST( <collaboration_name>, <request_id>, <reason> )

Argumentos

collaboration_name

Nome da colaboração.

request_id

O ID da solicitação.

reason

Uma descrição legível do motivo pelo qual a solicitação foi rejeitada. O argumento é obrigatório, mas você pode enviar uma cadeia de caracteres vazia.

Retornos

Uma mensagem de sucesso de cadeia de caracteres.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REJECT_UPDATE_REQUEST(
  $collaboration_name,
  'request_1324f934457',
  'Needs more cowbell'
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Procedimentos de gerenciamento de colaboração

INITIALIZE

Esquema:

COLLABORATION

O proprietário faz essa chamada para criar uma colaboração e, opcionalmente, ingressar na colaboração. Se auto_join_warehouse for FALSE, você deverá chamar JOIN separadamente para disponibilizar a colaboração para outros colaboradores. Você deve usar a mesma função para chamar INITIALIZE e depois JOIN.

O envio de uma definição de colaboração com o mesmo valor name de uma colaboração existente gera um erro.

Leva um tempo para criar e ingressar em uma colaboração, portanto você deve chamar GET_STATUS para saber quando a ingressão na colaboração foi feita.

Sintaxe

INITIALIZE( <collaboration_spec> [, '<auto_join_warehouse>'] )

Argumentos

collaboration_spec

Definição da colaboração no formato YAML, como uma cadeia de caracteres.

auto_join_warehouse (opcional)

Cadeia de caracteres que especifica um nome de warehouse como um identificador válido do Snowflake. Se especificado, a colaboração será criada e a ingressão nela será feita usando esse warehouse. Se não for especificado, o warehouse atual será usado para criar a colaboração, e você deve chamar JOIN para ingressar na colaboração. É recomendado um warehouse XS.

Retornos

Uma tabela com as seguintes colunas:

  • collaboration_name: o nome da colaboração. Use-o em qualquer procedimento que exija que você especifique uma de colaboração.

  • message: informações sobre a solicitação de inicialização.

  • auto_join_task: se auto_join_warehouse foi especificado, indica se a tarefa de ingresso automático foi criada.

Exemplos

O exemplo a seguir cria uma colaboração em que Alice é a proprietária e pode executar uma análise usando os dados fornecidos por Bob.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.INITIALIZE(
  $$
  api_version: 2.0.0
  spec_type: collaboration
  name: basic_collaboration
  owner: alice
  collaborator_identifier_aliases:
    alice: corp_id.account_id
    bob: corp2_id.account2_id
  analysis_runners:
    alice:
      data_providers:
        bob:
          data_offerings:
          - id: bob_data_v1
      templates:
      - id: alice_test_template_2026_01_12_V1
  $$,
  'APP_WH'
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando o procedimento a seguir:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

    Se o parâmetro auto-join-warehouse for fornecido e uma função diferente de SAMOOHA_APP_ROLE for usada, a função também deverá receber o privilégio EXECUTE TASK no nível da conta.

Consulte GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE para obter permissões de função adicionais necessárias.


TEARDOWN

Esquema:

COLLABORATION

Chamado pelo proprietário para excluir uma colaboração de todas as partes.

Você deve chamar esse procedimento duas vezes. Chame-o uma vez, depois chame GET_STATUS até que ele retorne LOCAL_DROP_PENDING e, por fim, chame esse procedimento novamente.

Nota

Esse procedimento só pode ser chamado em uma colaboração que você criou e na qual ingressou. Se você criou, mas ainda não ingressou na colaboração, deve ingressar nela para conseguir removê-la.

Sintaxe

TEARDOWN( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração a ser excluída.

Retornos

Uma mensagem de sucesso de cadeia de caracteres.

Exemplo

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Consulte GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE para obter permissões de função adicionais necessárias.


GET_STATUS

Esquema:

COLLABORATION

Mostra informações sobre todos os colaboradores em uma determinada colaboração.

Sempre que executar uma operação assíncrona, como criar ou ingressar em uma colaboração, você deve verificar o status para saber quando a última operação foi concluída antes de executar ações adicionais nessa colaboração, como realizar análises. Esse procedimento pode ser chamado por qualquer colaborador convidado para uma colaboração.

Os proprietários das colaborações podem ver o seguinte caminho de status:

  • CREATING » CREATED » INSTALLING » IN_REVIEW (ou INSTALLATION_FAILED) » JOINING » JOINED (ou JOIN_FAILED)

Não proprietários verão o seguinte caminho de status:

  • INSTALLING » IN_REVIEW (ou INSTALLATION_FAILED) » JOINING » JOINED (ou JOIN_FAILED)

Sintaxe

GET_STATUS( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração da qual ver o status. Você pode ver uma lista de suas colaborações chamando COLLABORATION.VIEW_COLLABORATIONS. Você deve ser convidado para, ou ter ingressado em, uma colaboração para poder chamar GET_STATUS nela.

Retornos

Uma tabela que mostra os detalhes da última tentativa de ingressão de todos os colaboradores na colaboração especificada. A tabela inclui as seguintes colunas:

  • updated_on: carimbo de data/hora em que o status foi relatado pelo sistema.

  • collaborator_account: ID da conta de compartilhamento de dados deste colaborador.

  • collaborator_name: alias do colaborador, conforme declarado na especificação da colaboração.

  • roles: as funções reais e potenciais deste colaborador. Os valores incluem owner, data_provider e analysis_runner.

  • status: status na hora atualizada. Os valores a seguir são permitidos e mostram o status do colaborador nomeado na colaboração especificada.

    • CREATING: a criação da colaboração foi iniciada.

    • CREATE_FAILED: falha na criação da colaboração.

    • CREATE_TIMED_OUT: o tempo limite para a criação da colaboração expirou.

    • CREATED: a colaboração foi criada e está pronta para uso em operação.

    • INSTALLING: instalação do pacote de aplicativo e preparação dos detalhes da colaboração para revisão.

    • IN_REVIEW: a colaboração está em revisão.

    • INSTALLATION_FAILED: falha na instalação; pacote de aplicativo não instalado e não pode ser revisado.

    • INVITED: o participante foi convidado.

    • JOINING: O processo de ingressão foi iniciado.

    • JOIN_FAILED: Falha no processo de ingressão.

    • JOINED: Ingressou na colaboração com sucesso. Você pode começar a usar a colaboração.

    • LEAVING: o processo de saída foi iniciado.

    • LEAVE_FAILED: falha no processo de saída.

    • LEFT: saiu com sucesso da colaboração.

    • LOCAL_DROP_PENDING: você fez uma solicitação bem-sucedida para descartar ou sair da colaboração. Complete o processo chamando TEARDOWN ou LEAVE novamente.

    • DROPPING: o processo de descarte foi iniciado.

    • DROPPED: descartado com sucesso.

    • DROP_FAILED: o processo de descarte falhou.

  • details: detalhes adicionais sobre o status atual, se disponíveis.

  • region: a região da nuvem deste colaborador.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('GET STATUS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION

Esquema:

ADMIN

Habilita tabelas externas e Apache Iceberg™ a serem usadas para executar uma análise em sua conta. Um executor de análise deve chamar esse procedimento antes de executar qualquer análise que inclua tabelas externas ou Iceberg. Esse procedimento é chamado uma vez por colaboração, não uma vez por análise.

Sintaxe

ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração.

Retornos

Uma tabela com uma coluna MESSAGE contendo uma mensagem de sucesso.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido o privilégio MANAGE FIREWALL CONFIGURATION para chamar esse procedimento.


VIEW_COLLABORATIONS

Esquema:

COLLABORATION

Visualize informações sobre colaborações que você criou, pode revisar ou nas quais ingressou.

Sintaxe

VIEW_COLLABORATIONS()

Argumentos

Nenhum

Retornos

Uma tabela que lista os detalhes de todas as colaborações que você pode acessar. A tabela inclui as seguintes colunas:

  • source_name: o nome da colaboração, conforme especificado pelo valor name na especificação da colaboração.

  • collaboration_name: o nome da colaboração instalada. O valor será NULL até que a colaboração seja instalada chamando JOIN (proprietários) ou REVIEW (não proprietários).

  • owner_account: ID de compartilhamento de dados da conta que criou a colaboração.

  • updated_on: quando a colaboração foi atualizada pela última vez.

  • collaboration_spec: a especificação para esta colaboração no formato YAML. Isso mostra a versão mais recente da colaboração, incluindo todos os recursos vinculados ou removidos após a criação da colaboração. No entanto, pode haver solicitações de atualização em andamento que serão vinculadas em breve, como modelos ou ofertas de dados novos ou removidos.

Exemplos

Visualizar todas as colaborações:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS();

Visualizar a especificação de uma determinada colaboração por nome:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
SELECT "COLLABORATION_SPEC" FROM $1 WHERE "SOURCE_NAME" = $collaboration_name;

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW COLLABORATIONS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REVIEW

Esquema:

COLLABORATION

Apresenta detalhes sobre uma colaboração para a qual você foi convidado. Chame COLLABORATION.VIEW_COLLABORATIONS para ver a quais colaborações você foi convidado e ainda não ingressou. Todos os colaboradores, exceto o proprietário, devem chamar esse procedimento antes de chamar JOIN. Não é possível chamar esse procedimento em uma colaboração na qual você ingressou. Você deve usar a mesma função para chamar REVIEW e JOIN. Se sua conta estiver em uma região de hospedagem em nuvem diferente da do proprietário, talvez seja necessário chamar esse procedimento várias vezes até que ele retorne uma resposta bem-sucedida.

Esse procedimento instala o aplicativo subjacente em sua conta.

Observações importantes:

  • Os proprietários não podem chamar REVIEW em suas próprias colaborações.

  • Todos, exceto o proprietário, devem chamar REVIEW antes de chamar JOIN.

  • Depois de ingressar em uma colaboração, você não poderá chamar REVIEW novamente.

Sintaxe

REVIEW( <source_name>, <owner_account> )

Argumentos

source_name

Nome da colaboração para a qual você foi convidado a ingressar. Você pode ver uma lista de suas colaborações chamando COLLABORATION.VIEW_COLLABORATIONS.

owner_account

Identificador da conta de compartilhamento de dados do proprietário. Isso pode ser encontrado na resposta a COLLABORATION.VIEW_COLLABORATIONS.

Retornos

Tabela de informações sobre a colaboração, incluindo o ID, o proprietário e a especificação da colaboração.

Se sua conta estiver em uma região de hospedagem em nuvem diferente daquela do proprietário da colaboração, REVIEW poderá retornar uma mensagem informando que etapas adicionais de configuração ainda estão sendo executadas. Se você receber essa mensagem, continue chamando REVIEW até ele retornar a tabela de informações sobre a colaboração.

Exemplo

-- View the collaboration for your own usage.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REVIEW(
  $collaboration_name,
  'org1.account1234'
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REVIEW COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Consulte GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE para obter permissões de função adicionais necessárias.


JOIN

Esquema:

COLLABORATION

Método assíncrono para ingressar em uma colaboração especificada. Observe que você pode acessar somente os recursos listados na colaboração no momento em que ingressar nela. Esse procedimento leva algum tempo para ser executado.

Você precisa do privilégio de conta REGISTER DATA OFFERING para ingressar em uma colaboração na qual possa ativar dados (ou seja, você é executor de análise e a especificação da colaboração inclui um campo activation_destinations). Consulte o guia de referência da API de gerenciamento de acesso.

Você não pode ter uma função secundária ativa ao executar esse procedimento. Execute o seguinte código SQL para desabilitar as funções secundárias:

USE SECONDARY ROLES NONE;

Todos, exceto o criador da colaboração, devem chamar COLLABORATION.REVIEW antes de chamar esse procedimento.

Esse procedimento é assíncrono. Chame GET_STATUS para determinar quando você ingressou na colaboração com sucesso.

Qualquer pessoa que envia um recurso para a colaboração ou deseja executar um modelo na colaboração deve primeiro ingressar na colaboração. O criador da colaboração ingressa automaticamente ao chamar INITIALIZE (a menos que auto_join_warehouse esteja definido como FALSE).

Sintaxe

JOIN( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração na qual ingressar. Você pode ver uma lista de suas colaborações chamando COLLABORATION.VIEW_COLLABORATIONS. Se você foi convidado a ingressar em várias colaborações com o mesmo nome, o padrão será a última na qual você chamou COLLABORATION.REVIEW.

Retornos

Uma mensagem de sucesso de cadeia de caracteres. Se você receber um erro sobre uma concessão de uso de referência ausente, consulte o Guia de solução de problemas.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.JOIN(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Consulte GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE para obter permissões de função adicionais necessárias.


LEAVE

Esquema:

COLLABORATION

Sai de uma colaboração na qual você ingressou. Não é possível reingressar em uma colaboração depois de sair dela.

Você deve chamar esse procedimento duas vezes. Chame-o uma vez, depois chame GET_STATUS até que ele retorne LOCAL_DROP_PENDING e, por fim, chame esse procedimento novamente.

Sintaxe

LEAVE( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração da qual sair.

Retornos

Uma mensagem de sucesso de cadeia de caracteres.

Exemplo

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Consulte GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE para obter permissões de função adicionais necessárias.


GET_CONFIGURATION

Esquema:

COLLABORATION

Retorna as configurações atuais de uma colaboração. Você deve ter ingressado na colaboração antes de chamar este procedimento.

Sintaxe

GET_CONFIGURATION( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração.

Retornos

Uma tabela com as seguintes colunas:

Coluna

Descrição

CONFIGURATION

O nome da configuração.

VALUE

O valor atual da configuração.

STATUS

Se o valor é ACTIVE ou PENDING (uma alteração foi solicitada, mas ainda não aplicada).

Configurações compatíveis

Nome da configuração

Descrição

TEMPLATE_AUTO_APPROVAL

Se as solicitações de atualização de modelo de outros colaboradores são aprovadas automaticamente. Valores: true ou false. Padrão: false.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_CONFIGURATION(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


SET_CONFIGURATION

Esquema:

COLLABORATION

Define um valor de configuração para uma colaboração. A alteração é assíncrona: chame GET_CONFIGURATION para verificar quando o novo valor foi aplicado. Você deve ter ingressado na colaboração antes de chamar este procedimento.

Use este procedimento para gerenciar a aprovação automática de modelos em vez dos procedimentos ENABLE_TEMPLATE_AUTO_APPROVAL e DISABLE_TEMPLATE_AUTO_APPROVAL obsoletos. Definir TEMPLATE_AUTO_APPROVAL como true habilita a aprovação automática, e defini-lo como false a desabilita.

Sintaxe

SET_CONFIGURATION( <collaboration_name>, <config_name>, <value> )

Argumentos

collaboration_name

Nome da colaboração.

config_name

Nome da configuração a ser definida. Consulte GET_CONFIGURATION para obter os nomes de configuração compatíveis.

value

O novo valor para a configuração. Deve ser um valor válido para o nome da configuração especificado.

Retornos

Uma mensagem de texto confirmando que a solicitação foi aceita.

Exemplo

-- Enable automatic approval of template requests
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.SET_CONFIGURATION(
  $collaboration_name,
  'TEMPLATE_AUTO_APPROVAL',
  'true'
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Executando análises e ativações

RUN

Esquema:

COLLABORATION

Executa uma análise na sala limpa de dados. Você pode passar os detalhes de execução como parâmetros individuais ou passar uma cadeia de caracteres de especificação YAML da análise.

Leia a referência de consumer.run_analysis para obter informações sobre como executar um modelo em uma sala limpa de dados.

Existem duas versões desse procedimento: uma que usa os argumentos de execução como uma única cadeia de caracteres com formatação YAML, e uma que usa os argumentos como parâmetros individuais.

Sintaxe

Sintaxe do argumento YAML:

RUN( <collaboration_name>, <analysis_spec> )

Sintaxe explícita dos parâmetros:

RUN( <collaboration_name>, <template_id>, <template_view_names>, <local_template_view_names>, <arguments> )

Argumentos

collaboration_name

Nome da colaboração na qual será executada esta análise.

analysis_spec

Definição da análise no formato YAML como uma cadeia de caracteres, descrevendo o modelo, as tabelas e os valores de modelo a serem usados nesta análise. Utilizado com a sintaxe do argumento YAML.

template_id

ID do modelo a ser executado.

template_view_names

Matriz de nomes de cadeia de caracteres das tabelas de origem a serem usadas na análise. Use os nomes de tabela retornados por VIEW_DATA_OFFERINGS na coluna template_view_name. O formato para cada entrada é user_alias.data_offering_id.dataset_alias

local_template_view_names

Matriz de IDs de cadeia de caracteres das suas próprias tabelas para usar na análise. Você deve primeiro vincular essas tabelas chamando LINK_LOCAL_DATA_OFFERING.

arguments

Objeto JSON que contém argumentos nomeados usados pelo modelo, em que cada chave é um nome de argumento de modelo e o valor representa esse argumento.

Retornos

Resultados da análise em formato de tabela.

Exemplos

Exemplo de passagem por parâmetro:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN(
  $collaboration_name,
  $template_name,
  ['Provider.data_offering_1_2026_01_12_v0.test_dataset'], -- Tables to pass to source_tables variable.
  [],
  {} -- Template takes no parameters.
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


VIEW_ACTIVATIONS

Esquema:

COLLABORATION

Mostra o status de ativação de qualquer execução de análise que você acionou para enviar a um colaborador, ou das ativações que um colaborador acionou para enviar a você. As solicitações de ativação para enviar dados a você mesmo não são listadas.

Para obter mais informações sobre ativação, consulte Implementando a ativação.

Sintaxe

VIEW_ACTIVATIONS( <collaboration_name> )

Argumentos

collaboration_name

Nome da colaboração.

Retornos

Uma tabela com os detalhes de cada ativação. A tabela inclui as seguintes colunas:

  • updated_on: hora em que o status foi atualizado pela última vez.

  • segment_name: uma cadeia de caracteres arbitrária atribuída pelo executor da análise para identificar a ativação. Para obter mais informações, consulte Ativação de resultados de consulta.

  • batch_id: ID do lote desta solicitação de ativação. Para obter mais informações, consulte Exibição dos resultados da ativação de provedor e consumidor.

  • template_id: modelo usado para produzir os dados da ativação.

  • shared_by: o colaborador que executou a análise.

  • shared_with: o colaborador que deve receber os dados da análise.

  • status: status da ativação. Os seguintes valores são suportados:

    • PENDING: a ativação foi solicitada, mas está aguardando para ser processada.

    • REPLICATING: os dados de ativação estão sendo replicados para a região de destino.

    • SHARED: os dados da ativação estão prontos para serem processados. Chame PROCESS_ACTIVATION para enviar os resultados à sua conta.

    • FAILED: o processamento de ativação falhou. Consulte as informações na coluna details.

    • PROCESSED: os resultados da ativação foram enviados para a conta especificada na solicitação de ativação.

  • details: detalhes da falha, se a ativação tiver falhado.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_ACTIVATIONS(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW ACTIVATIONS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


PROCESS_ACTIVATION

Esquema:

COLLABORATION

Se o executor da análise estiver enviando dados para a conta de outro colaborador, esse colaborador deverá chamar PROCESS_ACTIVATION para importar os dados da ativação para a conta dele. O colaborador deve chamar VIEW_ACTIVATIONS e aguardar até que a saída mostre que o status da ativação para um determinado segmento é SHARED antes de chamar PROCESS_ACTIVATION.

Para obter mais informações, consulte Implementando a ativação.

Sintaxe

PROCESS_ACTIVATION( <collaboration_name> [, <segment_name> | <array_of_batch_ids> ] )

Argumentos

collaboration_name

Nome da colaboração.

segment_name (opcional)

Nome da cadeia de caracteres de um segmento de ativação específico a ser processado.

batch_ids (opcional)

Matriz de cadeias de caracteres de IDs em lote das ativações a serem processadas. Esse valor é retornado por VIEW_ACTIVATIONS. Se não for incluído, a solicitação processará todas as ativações pendentes na colaboração designada para o autor da chamada.

Retornos

O nome da tabela em que o usuário pode recuperar os resultados e o nome do segmento especificado para os resultados. Consulte Implementando a ativação para saber como ler os resultados.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.PROCESS_ACTIVATION(
  $collaboration_name
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('PROCESS ACTIVATION', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Procedimentos de gerenciamento de registro

Esta seção contém procedimentos utilizados ​​para registrar objetos. Para obter mais informações:

CREATE_REGISTRY

Esquema:

REGISTRY

Cria um registro personalizado para organizar recursos, como modelos e ofertas de dados. Um registro personalizado pode armazenar recursos de um único tipo, designado quando você cria o registro.

Use os registros personalizados para agrupar recursos relacionados separadamente do registro local padrão. Adicione recursos a esse registro usando o parâmetro de nome de registro opcional.

Sintaxe

CREATE_REGISTRY( '<registry_name>', <registry_type> )

Argumentos

registry_name

Nome do registro a ser criado. Deve ser um nome exclusivo em todos os registros da conta.

registry_type

O tipo de recursos que este registro conterá. Valores suportados: TEMPLATE, DATA OFFERING.

Retornos

Uma mensagem de sucesso de cadeia de caracteres.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.CREATE_REGISTRY(
  'my_custom_registry',
  'TEMPLATE'
);

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando o procedimento a seguir:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')


VIEW_REGISTRIES

Esquema:

REGISTRY

Lista todos os registros aos quais você tem acesso, incluindo o registro local padrão e possíveis registros personalizados.

Sintaxe

VIEW_REGISTRIES()

Argumentos

Nenhum.

Retornos

Uma tabela com uma linha para cada registro que você pode acessar.

Exemplo

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTRIES();

Requisitos de acesso

Se você não usa a função SAMOOHA_APP_ROLE, deve usar uma função que tenha recebido privilégios chamando um dos procedimentos a seguir:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTRIES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')

Para que um registro personalizado fique visível para VIEW_REGISTRIES, você também deve ter os privilégios READ ou REGISTER, concedidos por uma das seguintes chamadas de procedimento:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'registry name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'registry name', 'role name')

Procedimentos de gerenciamento de acesso

A função SAMOOHA_APP_ROLE concede acesso a todos os procedimentos da Data Clean Room Collaboration API. Entretanto, se um administrador quiser conceder privilégios mais granulares a funções específicas, você poderá criar uma função e conceder a ela privilégios específicos com os procedimentos descritos nesta seção. Saiba mais sobre como gerenciar o acesso à Collaboration API: A documentação de gerenciamento de acesso.

Os procedimentos a seguir são usados para gerenciar o acesso refinado à API Snowflake Collaboration Data Clean Room:

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

Esquema:

ADMIN

Concede a uma função específica o privilégio de chamar procedimentos específicos em um objeto específico.

Você pode chamar esse procedimento várias vezes para conceder várias permissões à mesma função. Execute esse procedimento usando a função proprietária do objeto.

Sintaxe

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  '<privilege>',
  '<object_type>',
  '<object_name>',
  '<account_role_name>'
);

Argumentos

'privilege'

Que permissão esta função deve receber. Consulte a tabela abaixo para saber quais privilégios estão disponíveis para quais objetos.

'object_type'

O tipo de objeto no qual esta função está recebendo permissões. Valores com suporte:

  • COLLABORATION

  • REGISTRY

'object_name'

O ID do objeto, conforme indicado na especificação do objeto.

'account_role_name'

A função que está sendo concedida.

As seguintes combinações de privilégio e tipo de objeto são permitidas:

Privilégios compostos

Os seguintes privilégios compostos concedem acesso a vários procedimentos simultaneamente:

Privilégio

Tipo de objeto

Procedimentos habilitados

READ

COLLABORATION

VIEW_COLLABORATIONS, GET_STATUS, GET_CONFIGURATION, VIEW_CODE_SPECS, VIEW_DATA_OFFERINGS, VIEW_UPDATE_REQUESTS, VIEW_TEMPLATES

RUN

COLLABORATION

RUN, VIEW_ACTIVATIONS, VIEW_COLLABORATIONS

UPDATE

COLLABORATION

LINK_LOCAL_DATA_OFFERING, UNLINK_LOCAL_DATA_OFFERING, ADD_TEMPLATE_REQUEST, REMOVE_TEMPLATE, APPROVE_UPDATE_REQUEST, REJECT_UPDATE_REQUEST, ENABLE_TEMPLATE_AUTO_APPROVAL, DISABLE_TEMPLATE_AUTO_APPROVAL, SET_CONFIGURATION, VIEW_UPDATE_REQUESTS

READ

REGISTRY

Visualizar os recursos registrados em um registro personalizado.

REGISTER

REGISTRY

Visualizar ou registrar recursos, como modelos e ofertas de dados, em um registro personalizado.

Privilégios detalhados

Os seguintes privilégios detalhados concedem acesso a procedimentos individuais em uma colaboração específica:

Privilégio

Procedimentos habilitados

GET STATUS

GET_STATUS

VIEW DATA OFFERINGS

VIEW_DATA_OFFERINGS

VIEW TEMPLATES

VIEW_TEMPLATES

VIEW CODE SPECS

VIEW_CODE_SPECS

VIEW UPDATE REQUESTS

VIEW_UPDATE_REQUESTS

VIEW ACTIVATIONS

VIEW_ACTIVATIONS

ADD TEMPLATE REQUEST

ADD_TEMPLATE_REQUEST

REMOVE TEMPLATE

REMOVE_TEMPLATE

MANAGE UPDATE REQUEST

APPROVE_UPDATE_REQUEST, REJECT_UPDATE_REQUEST

MANAGE TEMPLATE AUTO APPROVAL

ENABLE_TEMPLATE_AUTO_APPROVAL, DISABLE_TEMPLATE_AUTO_APPROVAL, GET_CONFIGURATION, SET_CONFIGURATION

LINK LOCAL DATA OFFERINGS

LINK_LOCAL_DATA_OFFERING

UNLINK LOCAL DATA OFFERINGS

UNLINK_LOCAL_DATA_OFFERING

PROCESS ACTIVATION

PROCESS_ACTIVATION

Retornos

Uma tabela com uma coluna MESSAGE contendo uma mensagem de sucesso.

Exemplo

Este exemplo cria uma função que os analistas podem usar para executar análises em uma colaboração chamada my_collaboration e a atribui a um usuário.

USE ROLE role_that_created_this_collaboration;

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'RUN',
  'COLLABORATION',
  $collaboration_name,
  'collaborator_analyst_role'
);
GRANT ROLE collaborator_analyst_role to USER alexander_hamilton;

Requisitos de acesso

Você deve usar a mesma função que criou o objeto para chamar GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE nesse objeto.

  • Para colaborações, qualquer função com CREATE COLLABORATION ou JOIN COLLABORATION pode chamar GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE em qualquer colaboração.

  • Para registros, somente a função que criou o registro pode chamar GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE nesse registro.


GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

Esquema:

ADMIN

Concede privilégios no nível da conta a uma função. Esse procedimento permite que qualquer pessoa que use essa função chame os procedimentos listados para esse privilégio.

Sintaxe

GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE( '<privilege>', '<account_role_name>' );

Argumentos

'privilege'

O privilégio para conceder a esta função. Os seguintes valores de cadeia de caracteres são compatíveis:

  • JOIN COLLABORATION: concede permissão para executar COLLABORATION.JOIN, bem como os seguintes procedimentos na colaboração de ingresso:

    • ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

    • ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

    • ADMIN.REVOKE_PRIVILEGE_ON_OBJECT_FROM_ROLE

    • COLLABORATION.ADD_TEMPLATE_REQUEST

    • COLLABORATION.APPROVE_UPDATE_REQUEST

    • COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.REMOVE_TEMPLATE

    • COLLABORATION.GET_STATUS

    • COLLABORATION.LEAVE

    • COLLABORATION.LINK_DATA_OFFERING

    • COLLABORATION.LINK_LOCAL_DATA_OFFERING

    • COLLABORATION.PROCESS_ACTIVATION

    • COLLABORATION.REJECT_UPDATE_REQUEST

    • COLLABORATION.REVIEW

    • COLLABORATION.RUN

    • COLLABORATION.TEARDOWN

    • COLLABORATION.UNLINK_DATA_OFFERING

    • COLLABORATION.UNLINK_LOCAL_DATA_OFFERING

    • COLLABORATION.VIEW_ACTIVATIONS

    • COLLABORATION.VIEW_CODE_SPECS

    • COLLABORATION.VIEW_COLLABORATIONS

    • COLLABORATION.VIEW_DATA_OFFERINGS

    • COLLABORATION.VIEW_TEMPLATES

    • COLLABORATION.VIEW_UPDATE_REQUESTS

    • REGISTRY.VIEW_REGISTRIES

    • REGISTRY.VIEW_REGISTERED_CODE_SPECS

    • REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS

    • REGISTRY.VIEW_REGISTERED_TEMPLATES

    Esse privilégio requer que os seguintes privilégios no nível da conta sejam concedidos manualmente à função:

    • APPLY ROW ACCESS POLICY ON ACCOUNT

    • CREATE APPLICATION ON ACCOUNT

    • CREATE DATABASE ON ACCOUNT

    • CREATE LISTING ON ACCOUNT

    • CREATE SHARE ON ACCOUNT

    • IMPORT SHARE ON ACCOUNT

    • MANAGE SHARE TARGET ON ACCOUNT

  • CREATE COLLABORATION: concede permissão para executar COLLABORATION.INITIALIZE, além de todos os procedimentos permitidos por JOIN COLLABORATION para a colaboração de ingresso. Exige que os seguintes privilégios no nível da conta sejam concedidos manualmente à função:

    • APPLY ROW ACCESS POLICY

    • CREATE APPLICATION

    • CREATE DATABASE

    • CREATE LISTING

    • CREATE SHARE

    • IMPORT SHARE

    • MANAGE SHARE TARGET

    • EXECUTE TASK (se estiver usando a ingressão automática no procedimento INITIALIZE)

  • VIEW COLLABORATIONS: concede permissão para executar COLLABORATION.VIEW_COLLABORATIONS. Exige que os seguintes privilégios sejam concedidos manualmente à função:

    • IMPORT SHARE ON ACCOUNT

  • REGISTER DATA OFFERING: concede permissão para executar REGISTRY.REGISTER_DATA_OFFERING. Essa permissão é necessária para qualquer executor de análise ingressar em uma colaboração que implementa a ativação.

  • VIEW REGISTERED DATA OFFERINGS: concede permissão para executar REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS.

  • REGISTER TEMPLATE: concede permissão para executar REGISTRY.REGISTER_TEMPLATE.

  • VIEW REGISTERED TEMPLATES: concede permissão para executar REGISTRY.VIEW_REGISTERED_TEMPLATES.

  • REGISTER CODE SPEC: concede permissão para executar REGISTRY.REGISTER_CODE_SPEC.

  • VIEW REGISTERED CODE SPECS: concede permissão para executar REGISTRY.VIEW_REGISTERED_CODE_SPECS.

  • CREATE REGISTRY: concede permissão para executar REGISTRY.CREATE_REGISTRY, REGISTRY.VIEW_REGISTRIES, além da capacidade de ler registros personalizados que você criou.

  • REVIEW COLLABORATION: concede permissão para executar COLLABORATION.REVIEW.

  • VIEW REGISTRIES: concede permissão para executar REGISTRY.VIEW_REGISTRIES.

  • VIEW DCR STATUS: Concede permissão para visualizar o status geral do Data Clean Rooms na conta.

'account_role_name'

O nome de uma função no nível da conta.

Retornos

Uma tabela com uma coluna MESSAGE contendo uma mensagem de sucesso.

Exemplo

USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE(
  'REGISTER DATA OFFERING',
  'COLLABORATOR_ANALYST_ROLE'
);

Requisitos de acesso

Você precisa da função ACCOUNTADMIN, ou de uma função com o privilégio global MANAGE GRANTS, para executar este procedimento.