Comandos GRANT e REVOKE: alterações na saída de uma concessão com falha

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 desses comandos é o seguinte:

Anteriormente

Quando você executa qualquer um desses comandos e a operação não funciona para um ou mais privilégios ou funções especificados no comando, o Snowflake formata a resposta como uma «mensagem de status de sucesso» (ou seja, tabela) e indica as informações relevantes. Por exemplo:

GRANT ALL ON ACCOUNT TO ROLE r1;
Copy
+--------------------------------------------------------------------------------------------------------------------------+
| status                                                                                                                   |
|--------------------------------------------------------------------------------------------------------------------------|
| Grant partially executed: privileges [MANAGE LISTING AUTO FULFILLMENT, MANAGE ORGANIZATION SUPPORT CASES] not granted.   |
+--------------------------------------------------------------------------------------------------------------------------+

Esta saída é um exemplo representativo de uma das muitas mensagens possíveis ao executar qualquer um desses comandos.

Atualmente

Quando você executa um desses comandos e a operação não funciona para um ou mais privilégios ou funções especificados no comando, o Snowflake formata a resposta como uma mensagem de erro, com o código de erro, e indica a informação relevante. Por exemplo:

003011 (42501): Grant partially executed: privileges [MANAGE LISTING AUTO FULFILLMENT, MANAGE ORGANIZATION SUPPORT CASES] not granted.

O texto real da mensagem não muda.

Dica

Se você tiver fluxos de trabalho que dependem do resultado de qualquer um desses comandos, atualize seus scripts para analisar as informações do código de erro, que é 003011 (42501) neste exemplo.

A lista de códigos de erro afetados por esta alteração é:

003011: Grant partially executed: [ one or more privileges ] not granted.
003012: Revoke partially executed: [ one or more privileges ] not revoked.
003102: Grant not executed: Insufficient privileges.
003103: Revoke not executed: Insufficient privileges.
003104: Grant not executed: Operation not supported on a SHARE object.
003105: Revoke not executed: Operation not supported on a SHARE object.
Copy

O valor (42501) no exemplo reflete o cliente SQL que o usuário escolheu para executar o comando, que é o Conector Snowflake para Python neste exemplo. Este valor pode não aparecer dependendo de como você executa o comando (por exemplo, Snowsight não retorna este valor ou o valor do código de erro 003011).

O valor [ one or more privileges ] é um espaço reservado para retornar informações sobre a instrução que causou o erro. No exemplo, esse espaço reservado mostra que o privilégio REFERENCE_USAGE não foi concedido.

Ref: 515