Pular para o conteúdo
Lucas Lessa
Voltar para as notícias
SnowflakeGAImpacto: Alto

Permissões herdadas e MANAGE GRANTS em container no Snowflake (GA)

O Snowflake agora disponibiliza permissões herdadas aplicadas a containers e o MANAGE GRANTS em nível de container, simplificando a gestão de acessos.

O que mudou

Permissões herdadas e a administração de concessões em nível de container estão disponíveis de forma geral. Esses recursos permitem definir privilégios em objetos atuais e futuros com um único comando e delegar a administração de concessões para bancos de dados ou schemas específicos sem precisar de acesso global na conta.

Para que serve

Imagine que você precisa garantir que uma role de analista consiga ler todas as tabelas atuais e futuras de um schema, sem precisar criar regras individuais ou gerenciar grants de objetos futuros. Com esse recurso, você define o acesso uma única vez no container e ele se propaga automaticamente.

  • Conceder privilégios uniformes em todas as tabelas ou objetos de um container de forma automática.
  • Delegar a administração de concessões para um banco de dados ou schema a uma role específica.
  • Reduzir a proliferação de registros de concessão e simplificar a hierarquia de roles.

Como usar

Ambos os recursos são opcionais e precisam ser habilitados na conta. Você pode ativá-los executando o comando de alteração na conta:

ALTER ACCOUNT SET FEATURE_RBAC_INHERITED_GRANTS = 'ENABLED';

O que acontece nesse código:

  1. O parâmetro da conta FEATURE_RBAC_INHERITED_GRANTS é configurado como habilitado.
  2. O comando ativa tanto as permissões herdadas quanto o MANAGE GRANTS em nível de container.

Para aplicar uma permissão herdada em todas as tabelas de um schema para uma role:

GRANT INHERITED SELECT ON ALL TABLES
  IN SCHEMA prod.analytics
  TO ROLE analyst_role;

O que acontece nesse código:

  1. A palavra-chave INHERITED indica que a regra se aplica a objetos existentes e futuros.
  2. O privilégio SELECT é concedido para todas as tabelas dentro do schema prod.analytics.
  3. A role analyst_role recebe acesso imediato e automático a qualquer nova tabela criada posteriormente nesse schema.

Limitações e requisitos

  • Os recursos são opcionais (opt-in) e precisam ser ativados via parâmetro na conta.
  • Exige o privilégio MANAGE GRANTS no container correspondente ou em um container superior.
  • O uso de permissões herdadas em objetos executáveis (como procedures e functions) deve ser revisado, pois pode permitir a execução de código com os privilégios do owner.
Ver nota oficial do Snowflake

Inherited grants and container-level MANAGE GRANTS (General availability)

Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.

Relacionadas