Funções de banco de dados: não é permitido compartilhar funções de banco de dados com concessões futuras

Atenção

Essa mudança de comportamento está no pacote 2023_05.

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

O comportamento de concessões futuras e funções de banco de dados é o seguinte:

Anteriormente:

Você pode conceder privilégios futuros a uma função de banco de dados e conceder a função de banco de dados a um compartilhamento. Existem dois cenários:

  1. Conceda os privilégios à função de banco de dados e, em seguida, conceda a função de banco de dados ao compartilhamento.

    GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1;
    GRANT DATABASE ROLE dbr1 TO SHARE myshare;
    
    Copy
  2. Conceda a função de banco de dados a um compartilhamento e, em seguida, conceda os privilégios futuros à função de banco de dados.

    GRANT DATABASE ROLE dbr1 TO SHARE myshare;
    GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1;
    
    Copy

É possível usar os comandos a seguir para identificar se você possui funções de banco de dados afetadas pelas alterações pendentes:

SHOW FUTURE GRANTS IN DATABASE parent_db;
SHOW FUTURE GRANTS IN shared_schema;
Copy
Atualmente:

Você não poderá conceder concessões futuras em objetos quando a função de banco de dados for concedida a um compartilhamento. Snowflake retorna uma mensagem de erro exclusiva dependendo do cenário que você tenta:

  1. Com o cenário um, a mensagem de erro é:

    Cannot share a database role with future grants to it.
    

    Use uma instrução REVOKE <privilégios> para revogar a concessão futura da função de banco de dados. Se necessário, atualize a instrução GRANT <privilégios> para que ela não especifique concessões futuras. Por fim, conceda a função de banco de dados para o compartilhamento.

  2. Com o cenário dois, a mensagem de erro é:

    Cannot grant future grants to a database role that is granted to a share.
    

    Modifique a instrução GRANT <privilégios> para que ela não especifique concessões futuras.

Ref: 1144