Registros¶
Antes de adicionar um modelo, oferta de dados ou outro recurso a uma colaboração, você deve registrar o recurso em um registro. Um registro é um contêiner de nível de conta que armazena recursos. Após o registro de um recurso, ele pode ser adicionado a uma colaboração por qualquer pessoa em sua conta que tenha acesso a ele. Os registros não estão vinculados a uma colaboração específica, mas os recursos no registro podem ser vinculados a zero ou mais colaborações nessa conta.
Cada conta Snowflake é compatível com um registro padrão. Você pode criar registros personalizados adicionais para sua conta. Os registros personalizados são uma boa maneira de agrupar e gerenciar o acesso aos seus recursos. Por exemplo, você pode criar um registro personalizado para dados de vendas e outro para dados de despesas e, em seguida, conceder acesso a esses registros aos usuários apropriados por meio de funções RBAC.
Aqui estão as principais regras sobre registros:
Cada registro personalizado é compatível com um único tipo de recurso (modelo, oferta de dados, etc.). O tipo de dados é especificado ao criar o registro. O registro padrão é compatível com todos os tipos de recursos.
Não há limite para o número de registros personalizados que você pode criar em uma conta.
Ao registrar um recurso, você pode usar o parâmetro de nome de registro opcional para especificar um registro personalizado. Se você não especificar um registro personalizado, o recurso será registrado no registro padrão da conta.
Todos os usuários têm acesso ao registro padrão de uma conta. Os registros personalizados, no entanto, são inicialmente privados para o criador, e usuários adicionais devem ter o acesso concedido explicitamente pela chamada de
GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE.Uma conta pode ter vários registros que armazenam o mesmo tipo de recurso.
Os registros não têm um número máximo de recursos.
Um recurso deve ter um nome exclusivo em todos os registros dessa conta para recursos desse tipo. Por exemplo, você pode ter um modelo chamado
salese uma oferta de dados chamadasalesna mesma conta, mas não dois modelos chamadossalesno mesmo registro ou em registros diferentes na mesma conta. O nome do recurso é definido como o valornamede nível mais alto na especificação.Quando você vincula um recurso a uma colaboração, ele fica visível para qualquer pessoa que possa acessá-lo de acordo com a especificação. Não é necessário acesso ao registro contido.
Se duas contas diferentes registrarem recursos com o mesmo nome e tipo, isso será permitido. A especificação de colaboração mostrará recursos com nomes idênticos, mas o sistema saberá qual recurso é o pretendido; o recurso com esse nome é utilizado da conta que adicionou o recurso à colaboração.
Exemplo¶
Este exemplo cria um registro personalizado, registra uma oferta de dados nele e concede acesso de leitura a esse registro por meio de uma nova função.
-- Create a custom registry that can hold data offerings.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.CREATE_REGISTRY(
'SALES',
'DATA_OFFERING'
);
-- Add a data offering to the custom registry.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
'SALES',
$$
api_version: 2.0.0
spec_type: data_offering
version: v1
name: FL_SALES
datasets:
- alias: customers_1
data_object_fqn: SALES_DB.PUBLIC.FL_DATA
allowed_analyses: template_only
schema_and_template_policies:
company_name:
category: passthrough
total_sales:
category: passthrough
$$
);
-- Create a role and grant it access to the registry.
CREATE ROLE MARKETING_USERS;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
'READ',
'REGISTRY',
$collaboration_name,
'MARKETING_USERS'
);
-- Grant access to the registry for a user by assigning the role.
GRANT ROLE MARKETING_USERS to USER willy_loman;