Modelo de controle de acesso à Snowflake Feature Store¶
Nota
A API do Snowflake Feature Store está disponível no pacote Snowpark ML Python (snowflake-ml-python) v1.5.0 e posterior.
Os privilégios exigidos pela Snowflake Feature Store dependem do tipo de usuário.
Produtores podem criar e operar em exibições de recurso.
Os consumidores podem ler informações sobre exibições de recurso e entidades no repositório de recursos.
Normalmente, cada tipo de usuário terá sua própria função de banco de dados Snowflake com os privilégios necessários. As funções do repositório de recursos são configuradas mais naturalmente usando uma hierarquia de função.
Os produtores precisam dos seguintes privilégios:
CREATE DYNAMIC TABLE, CREATE TAG e CREATE VIEW no esquema do repositório de recursos
Nota
Para exibições de recurso gerenciadas pelo Snowflake (apoiadas por uma tabela dinâmica) com atualização incremental, as tabelas de origem devem ter o rastreamento de alterações habilitado, ou o usuário deve ter OWNERSHIP de uma dessas tabelas para habilitar automaticamente o rastreamento de alterações quando a exibição de recurso for criada.
CREATE TABLE e CREATE DATASET no esquema de repositório de recursos e/ou no esquema de destino ao gerar conjuntos de dados para treinamento.
OPERATE nas tabelas e tarefas dinâmicas no esquema do repositório de recursos para gerenciar as configurações de atualização da exibição de recursos.
USAGE no warehouse passado ao inicializador do repositório de recursos.
CREATE SCHEMA é opcional se o esquema do repositório de recursos já existir e os produtores tiverem privilégios de uso nele.
Todos os privilégios de consumidor listados abaixo.
Os consumidores precisam, no mínimo, dos seguintes privilégios:
USAGE no banco de dados e esquema do repositório de recursos.
SELECT e MONITOR em DYNAMIC TABLES no esquema do repositório de recursos.
SELECT e REFERENCE em exibições no esquema do repositório de recursos.
USAGE no warehouse passado ao inicializador do repositório de recursos.
Os consumidores também podem ter os seguintes privilégios para permitir que eles usem os dados do repositório de recursos:
CREATE TABLE e CREATE DATASET no esquema de repositório de recursos e/ou no esquema de destino para gerar conjuntos de dados para treinamento.
SELECT e REFERENCE em tabelas no repositório de recursos ou em quaisquer esquemas que contenham conjuntos de dados gerados.
USAGE em DATASETs no esquema do repositório de recursos ou em quaisquer esquemas que contenham conjuntos de dados gerados.
Com vários repositórios de recursos, você provavelmente terá esses dois tipos de funções para cada repositório de recursos individual ou para agrupamentos lógicos de repositórios de recursos.
Nota
Uma função com os privilégios MANAGE GRANTS, CREATE ROLE e CREATE SCHEMA ON DATABASE <DB> são necessários para configurar as funções e privilégios necessários do Feature Store. Você pode usar a função interna ACCOUNTADMIN ou uma função personalizada com esses privilégios.
Configuração de controle de acesso em Python¶
A versão do pacote snowflake-ml-python 1.6.3 e posterior inclui uma API do utilitário setup_feature_store para configurar um novo repositório de recursos com funções e privilégios de produtor e consumidor. No exemplo a seguir, preencha os nomes do banco de dados, esquema, warehouse e função de produtor e consumidor, onde indicado.
Configuração de controle de acesso em SQL¶
É possível configurar manualmente as funções e privilégios da Feature Store usando os seguintes comandos SQL. Observe que no primeiro bloco, há vários comandos SET que informam ao script os nomes que você deseja usar para suas funções de produtor e consumidor, bem como os nomes do banco de dados e do esquema onde as exibições de recurso de recurso serão armazenadas. Todos esses objetos são criados se não existirem.