Suporte de replicação para o privilégio CREATE <class_name>

Atenção

Essa mudança de comportamento está no pacote 2024_04.

Para saber o status atual do pacote, consulte Histórico do pacote.

O privilégio CREATE <nome_da_classe> é concedido em um esquema para uma função. Uma função com esse privilégio pode ser usada para criar uma instância de classe <nome_da_classe>.

Por exemplo, a seguinte instrução concede à função budget_creator o privilégio de criar instâncias da classe SNOWFLAKE.CORE.BUDGET no esquema budgets_db.budgets_schema:

GRANT CREATE SNOWFLAKE.CORE.BUDGET
  ON SCHEMA budgets_db.budgets_schema
  TO ROLE budget_creator;
Copy

Nota

Os privilégios concedidos às funções são replicados para contas de destino somente se o tipo de objeto ROLES estiver incluído na lista OBECT_TYPES para um grupo de replicação ou failover. O objeto ao qual o privilégio é concedido também deve ser replicado.

A replicação do privilégio CREATE <nome_da_classe> se comporta da seguinte maneira:

Antes da mudança:

Se uma função receber o privilégio CREATE <nome_da_classe> em um esquema em uma conta de origem, essa concessão de privilégio não é replicada para contas de destino.

Por exemplo, o privilégio CREATE SNOWFLAKE.ML.FORECAST é concedido usando a seguinte instrução em uma conta de origem:

GRANT CREATE SNOWFLAKE.ML.FORECAST
  ON SCHEMA admin_db.admin_schema
  TO ROLE analyst;
Copy

Se o banco de dados admin_db e as funções forem replicadas para uma conta de destino, a concessão do privilégio CREATE SNOWFLAKE.ML.FORECAST não é replicada. A função analyst não consegue criar instâncias da classe SNOWFLAKE.ML.FORECAST na conta de destino.

Após a mudança:

Se uma função receber o privilégio CREATE <nome_da_classe> em um esquema em uma conta de origem, a concessão de privilégio será replicada para a conta de destino se os seguintes objetos estiverem incluídos no grupo de replicação ou failover:

  • O banco de dados que contém o esquema no qual o privilégio é concedido.

  • O tipo de objeto ROLES está incluído na lista OBJECT_TYPES.

Um usuário que recebeu a função com o privilégio CREATE <nome_da_classe> em uma conta de destino pode criar uma instância de <nome_da_classe> no esquema replicado na conta de destino.

Por exemplo, o privilégio CREATE SNOWFLAKE.ML.FORECAST é concedido usando a seguinte instrução em uma conta de origem:

GRANT CREATE SNOWFLAKE.ML.FORECAST
  ON SCHEMA admin_db.admin_schema
  TO ROLE analyst;
Copy

Se o banco de dados admin_db e as funções forem replicadas para uma conta de destino, a concessão do privilégio CREATE SNOWFLAKE.ML.FORECAST é replicada. A função analyst consegue criar instâncias da classe SNOWFLAKE.ML.FORECAST na conta de destino.

Para obter uma lista de classes Snowflake disponíveis, consulte Referência de classe SQL.

Ref: 1607