

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Observações de uso
<a name="r_REVOKE-usage-notes"></a>

Para revogar privilégios de um objeto, você deve atender a um dos seguintes critérios:
+ Ser o proprietário do objeto.
+ Ser um superusuário.
+ Ter um privilégio concedido para o objeto e privilégio.

  Por exemplo, o comando a seguir fornece ao usuário HR a capacidade de executar comandos SELECT na tabela de funcionários e conceder e revogar o mesmo privilégio para outros usuários.

  ```
  grant select on table employees to HR with grant option;
  ```

  HR não pode revogar privilégios para qualquer operação além de SELECT ou em qualquer outra tabela que não seja de funcionários. 

Superusuários podem acessar todos os objetos, independentemente de comandos GRANT e REVOKE que definem privilégios de objeto.

PUBLIC representa um grupo que inclui sempre todos os usuários. Por padrão, todos os membros de PUBLIC têm privilégios CREATE e USAGE no esquema PUBLIC. Para restringir as permissões de qualquer usuário no esquema PUBLIC, você deve primeiro revogar todas as permissões em PUBLIC no esquema PUBLIC e, depois, conceder privilégios a usuários ou grupos específicos. O exemplo a seguir controla os privilégios de criação de tabela no esquema PUBLIC.

```
revoke create on schema public from public;
```

Para revogar privilégios de uma tabela do Lake Formation, a função do IAM associada ao esquema externo da tabela deve ter permissão para revogar privilégios para a tabela externa. O exemplo a seguir cria um esquema externo com uma função do IAM associada `myGrantor`. A função do IAM `myGrantor` tem permissão para revogar permissões de outros. O comando REVOKE usa a permissão da função do IAM `myGrantor` que está associada ao esquema externo para revogar permissão para a função do IAM `myGrantee`.

```
create external schema mySchema
from data catalog
database 'spectrum_db'
iam_role 'arn:aws:iam::123456789012:role/myGrantor'
create external database if not exists;
```

```
revoke select
on external table mySchema.mytable
from iam_role 'arn:aws:iam::123456789012:role/myGrantee';
```

**nota**  
Se a função do IAM também tiver a permissão `ALL` em um AWS Glue Data Catalog habilitado para o Lake Formation, a permissão `ALL` não será revogada. Somente a permissão `SELECT` é revogada. Você pode exibir as permissões do Lake Formation no console do Lake Formation.

## Observações de uso para revogar a permissão ASSUMEROLE
<a name="r_REVOKE-usage-notes-assumerole"></a>

As observações de uso a seguir são aplicáveis à revogação do privilégio ASSUMEROLE no Amazon Redshift. 

Somente um superusuário de banco de dados pode revogar o privilégio ASSUMEROLE para usuários e grupos. Um superusuário sempre mantém o privilégio ASSUMEROLE. 

Para habilitar o uso do privilégio ASSUMEROLE para usuários e grupos, um superusuário executa a instrução a seguir uma vez no cluster. Antes de conceder o privilégio ASSUMEROLE a usuários e grupos, um superusuário deve executar a instrução a seguir uma vez no cluster. 

```
revoke assumerole on all from public for all;
```

## Observações de uso para revogar permissões de machine learning
<a name="r_REVOKE-usage-notes-create-model"></a>

Você não pode conceder ou revogar diretamente as permissões relacionadas a uma função de ML. Uma função de ML pertence a um modelo de ML e as permissões são controladas por meio do modelo. Em vez disso, você pode revogar permissões relacionadas ao modelo de ML. O exemplo a seguir demonstra como revogar a permissão de execução para todos os usuários associados ao modelo `customer_churn`.

```
REVOKE EXECUTE ON MODEL customer_churn FROM PUBLIC;
```

Você também pode revogar todas as permissões de um usuário para o modelo de ML `customer_churn`.

```
REVOKE ALL on MODEL customer_churn FROM ml_user;
```

A concessão ou revogação da permissão `EXECUTE` relacionada a uma função de ML falhará se houver uma função de ML no esquema, mesmo que essa função de ML já tenha a permissão `EXECUTE` por meio de `GRANT EXECUTE ON MODEL`. Recomendamos usar um esquema separado ao usar o comando `CREATE MODEL` para manter as funções de ML em um esquema separado. O exemplo a seguir demonstra como fazer isso.

```
CREATE MODEL ml_schema.customer_churn
FROM customer_data
TARGET churn
FUNCTION ml_schema.customer_churn_prediction
IAM_ROLE default
SETTINGS (
 S3_BUCKET 'amzn-s3-demo-bucket'
);
```