

 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/). 

# REVOKE
<a name="r_REVOKE"></a>

Remove permissões de acesso, como permissões para criar, descartar ou atualizar tabelas, de um usuário ou uma função.

Você só pode CONCEDER ou REVOGAR permissões de USO em um esquema externo para usuários de banco de dados e funções que usem a sintaxe ON SCHEMA. Ao usar ON EXTERNAL SCHEMA com AWS Lake Formation, só é possível conceder (GRANT) e revogar (REVOKE) permissões para um perfil do AWS Identity and Access Management (IAM). Para obter a lista de permissões, consulte a sintaxe.

Para procedimentos armazenados, USAGE ON LANGUAGE `plpgsql` é concedido para PUBLIC, por padrão. A permissão EXECUTE ON PROCEDURE é concedida somente ao proprietário e aos superusuários, por padrão.

Especifique as permissões que deseja remover no comando REVOKE. Para conceder permissões, use o comando [GRANT](r_GRANT.md). 

## Sintaxe
<a name="r_REVOKE-synopsis"></a>

```
REVOKE [ GRANT OPTION FOR ]
{ { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES | ALTER | TRUNCATE } [,...] | ALL [ PRIVILEGES ] }
ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] }
FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
{ { CREATE | TEMPORARY | TEMP | ALTER } [,...] | ALL [ PRIVILEGES ] }
ON DATABASE db_name [, ...]
FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
{ { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }
ON SCHEMA schema_name [, ...]
FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
EXECUTE
    ON FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
{ { EXECUTE } [,...] | ALL [ PRIVILEGES ] }
    ON PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
USAGE
    ON LANGUAGE language_name [, ...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [GRANT OPTION FOR] 
{ { ALTER | DROP} [,...] | ALL [ PRIVILEGES ] }
    ON COPY JOB job_name [,...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]    

REVOKE [GRANT OPTION FOR]
{ { ALTER | DROP | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON TEMPLATE template_name [,...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
```

### Revogar permissões por coluna para tabelas
<a name="revoke-column-level"></a>

A seguir está a sintaxe para permissões por coluna em tabelas e visualizações do Amazon Redshift. 

```
REVOKE { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }
     ON { [ TABLE ] table_name [, ...] }
     FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
     [ RESTRICT ]
```

### Revogar permissões ASSUMEROLE
<a name="revoke-assumerole-permissions"></a>

A seguir está a sintaxe para revogar a permissão ASSUMEROLE de usuários e grupos com um perfil especificado. 

```
REVOKE ASSUMEROLE
    ON { 'iam_role' [, ...]  | default | ALL }
    FROM { user_name | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
    FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL }
```

### Revogar permissões do Redshift Spectrum para Lake Formation
<a name="revoke-spectrum-integration-with-lf-permissions"></a>

A seguir está a sintaxe para integração do Redshift Spectrum com Lake Formation.

```
REVOKE [ GRANT OPTION FOR ]
{ SELECT | ALL [ PRIVILEGES ] } ( column_list )
    ON EXTERNAL TABLE schema_name.table_name
    FROM { IAM_ROLE iam_role } [, ...]

REVOKE [ GRANT OPTION FOR ]
{ { SELECT | ALTER | DROP | DELETE | INSERT }  [, ...] | ALL [ PRIVILEGES ] }
    ON EXTERNAL TABLE schema_name.table_name [, ...]
    FROM { { IAM_ROLE iam_role } [, ...] | PUBLIC }

REVOKE [ GRANT OPTION FOR ]
{ { CREATE | ALTER | DROP }  [, ...] | ALL [ PRIVILEGES ] }
    ON EXTERNAL SCHEMA schema_name [, ...]
    FROM { IAM_ROLE iam_role } [, ...]
```

### Revogar permissões de unidade de compartilhamento de dados
<a name="revoke-datashare-permissions"></a>

**Permissões da unidade de compartilhamento de dados no lado do produtor**  
Esta é a sintaxe para usar REVOKE a fim de remover permissões ALTER ou SHARE de um usuário ou uma função. O usuário cujas permissões foram revogadas não pode mais alterar a unidade de compartilhamento de dados nem conceder o uso a um consumidor. 

```
REVOKE { ALTER | SHARE } ON DATASHARE datashare_name
 FROM { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
```

Esta é a sintaxe para usar REVOKE a fim de remover o acesso do consumidor a uma unidade de compartilhamento de dados.

```
REVOKE USAGE
 ON DATASHARE datashare_name
 FROM NAMESPACE 'namespaceGUID' [, ...] | ACCOUNT 'accountnumber' [ VIA DATA CATALOG ] [, ...]
```

Este é um exemplo de como revogar o uso de uma unidade de compartilhamento de dados de uma conta do Lake Formation.

```
REVOKE USAGE ON DATASHARE salesshare FROM ACCOUNT '123456789012' VIA DATA CATALOG;
```

**Permissões da unidade de compartilhamento de dados no lado do consumidor**  
A seguir está a sintaxe REVOKE para permissões de uso de compartilhamento de dados em um banco de dados ou esquema específico criado a partir de um datashare. A revogação da permissão de uso de um banco de dados criado com a cláusula WITH PERMISSIONS não revoga nenhuma permissão adicional concedida a um usuário ou a uma função, inclusive permissões no nível de objeto concedidas para objetos subjacentes. Se você conceder novamente a permissão de uso a esse usuário ou função, eles manterão todas as permissões adicionais que tinham antes de você ter revogado o uso.

```
REVOKE USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema}
 FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
```

### Revogação de permissões em escopo
<a name="revoke-scoped-permissions"></a>

Com as permissões em escopo, é possível conceder permissões a um usuário ou função em todos os objetos de um tipo em um banco de dados ou esquema. Usuários e funções com permissões em escopo têm as permissões especificadas em todos os objetos atuais e futuros no banco de dados ou esquema.

Você pode visualizar o escopo das permissões com escopo em nível de banco de dados em [SVV\$1DATABASE\$1PRIVILEGES](r_SVV_DATABASE_PRIVILEGES.md). Você pode visualizar o escopo das permissões com escopo em nível de esquema em [SVV\$1SCHEMA\$1PRIVILEGES](r_SVV_SCHEMA_PRIVILEGES.md).

Para ter mais informações sobre permissões com escopo definido, consulte [Permissões em escopo](t_scoped-permissions.md).

Esta é a sintaxe para revogação de permissões em escopo de usuários ou perfis. 

```
REVOKE [ GRANT OPTION ] 
{ CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }
FOR SCHEMAS IN
DATABASE db_name 
FROM { username | ROLE role_name } [, ...]

REVOKE [ GRANT OPTION ]
{ { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [PRIVILEGES] } }
FOR TABLES IN
{ SCHEMA schema_name [ DATABASE db_name ] | DATABASE db_name }
FROM { username | ROLE role_name } [, ...]

REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] }
FOR FUNCTIONS IN 
{ SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name }
FROM { username | ROLE role_name } [, ...]

REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] }
FOR PROCEDURES IN
{ SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name }
FROM { username | ROLE role_name } [, ...]

REVOKE [ GRANT OPTION ] USAGE
FOR LANGUAGES IN
DATABASE db_name
FROM { username | ROLE role_name } [, ...]  

REVOKE [GRANT_OPTION] 
{ { CREATE | ALTER | DROP} [,...] | ALL [ PRIVILEGES ] }
FOR COPY JOBS 
IN DATABASE db_name
FROM { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...]      

REVOKE [ GRANT OPTION ]
{ {ALTER | DROP  | USAGE } [,...] | ALL [ PRIVILEGES ] }
FOR TEMPLATES IN
{ SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name }
FROM { username | ROLE role_name } [, ...]
```

Observe que as permissões no escopo não fazem distinção entre permissões para funções e procedimentos. Por exemplo, a declaração a seguir revoga as permissões `EXECUTE` para funções e procedimentos de `bob` no esquema `Sales_schema`. 

```
REVOKE EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema FROM bob;
```

### Revogar permissões de machine learning
<a name="revoke-model-permissions"></a>

A seguir está a sintaxe para permissões de modelos de machine learning no Amazon Redshift.

```
REVOKE [ GRANT OPTION FOR ]
    CREATE MODEL FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
    [ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { EXECUTE | ALL [ PRIVILEGES ] }
    ON MODEL model_name [, ...]

    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
    [ RESTRICT ]
```

### Revogar permissões de perfil
<a name="revoke-roles"></a>

A sintaxe a seguir revoga permissões de perfil no Amazon Redshift.

```
REVOKE [ ADMIN OPTION FOR ] { ROLE role_name } [, ...] FROM { user_name } [, ...]
```

```
REVOKE { ROLE role_name } [, ...] FROM { ROLE role_name } [, ...]
```

A sintaxe a seguir revoga permissões de sistema a perfis no Amazon Redshift.

```
REVOKE
  {
    { CREATE USER | DROP USER | ALTER USER |
    CREATE SCHEMA | DROP SCHEMA |
    ALTER DEFAULT PRIVILEGES |
    ACCESS CATALOG |
    CREATE TABLE | DROP TABLE | ALTER TABLE |
    CREATE OR REPLACE FUNCTION | CREATE OR REPLACE EXTERNAL FUNCTION |
    DROP FUNCTION |
    CREATE OR REPLACE PROCEDURE | DROP PROCEDURE |
    CREATE OR REPLACE VIEW | DROP VIEW |
    CREATE MODEL | DROP MODEL |
    CREATE DATASHARE | ALTER DATASHARE | DROP DATASHARE |
    CREATE LIBRARY | DROP LIBRARY |
    CREATE ROLE | DROP ROLE
    TRUNCATE TABLE
    VACUUM | ANALYZE | CANCEL }[, ...]
  }
  | { ALL [ PRIVILEGES ] }
FROM { ROLE role_name } [, ...]
```

### Revogar permissões para políticas de segurança
<a name="revoke-role-level"></a>

Veja a seguir a sintaxe para revogar permissões para explicar os filtros de política de segurança no nível da linha de uma consulta no plano EXPLAIN. As políticas de segurança possíveis incluem segurança por linha e políticas de mascaramento dinâmico de dados.

```
REVOKE EXPLAIN { RLS | MASKING } FROM ROLE rolename 
```

Veja a seguir a sintaxe para revogar permissões para ignorar políticas de segurança por linha para uma consulta. 

```
REVOKE IGNORE RLS FROM ROLE rolename 
```

A sintaxe a seguir revoga permissões SELECT da política de segurança especificada. As políticas de segurança possíveis incluem segurança por linha e políticas de mascaramento dinâmico de dados.

```
REVOKE SELECT ON [ TABLE ] table_name [, ...]
            FROM { RLS | MASKING } POLICY policy_name [, ...]
```

## Parâmetros
<a name="r_REVOKE-parameters"></a>

GRANT OPTION FOR   
Revoga somente a opção de conceder uma permissão especificada a outros usuários e não revoga a própria permissão. Não é possível revogar GRANT OPTION de um grupo ou de PUBLIC.

SELECT   
Revoga a permissão de selecionar dados de uma tabela ou visualização usando uma instrução SELECT.

INSERT   
Revoga a permissão de carregar dados em uma tabela usando uma instrução INSERT ou COPY. 

UPDATE   
Revoga a permissão de atualizar uma coluna de tabela usando a instrução UPDATE. 

DELETE   
Revoga a permissão de excluir uma linha de dados de uma tabela.

REFERENCES   
Revoga a permissão de criar uma restrição de chave externa. Você deve revogar essa permissão tanto na tabela referenciada quanto na tabela de referência.

TRUNCATE  
Revoga a permissão para truncar uma tabela. Sem essa permissão, somente o proprietário de uma tabela ou um superusuário pode truncar uma tabela. Para obter mais informações sobre o comando TRUNCATE, consulte [TRUNCATE](r_TRUNCATE.md).

ALL [ PRIVILEGES ]   
Revoga de um vez todas as permissões disponíveis do usuário ou grupo especificado. A palavra-chave PRIVILEGES é opcional.  
 O Amazon Redshift não é compatível com as permissões RULE e TRIGGER. Para obter mais informações, acesse [Recursos incompatíveis do PostgreSQL](c_unsupported-postgresql-features.md). 

ALTER  
Dependendo do objeto do banco de dados, as seguintes permissões são revogadas do usuário ou grupo de usuários:   
+ Para tabelas, ALTER revoga a permissão para alterar uma tabela ou visão. Para obter mais informações, consulte [ALTER TABLE](r_ALTER_TABLE.md).
+ Para bancos de dados, ALTER revoga a permissão para alterar um banco de dados. Para obter mais informações, consulte [ALTER DATABASE](r_ALTER_DATABASE.md).
+ Para esquemas, ALTER revoga a permissão para alterar um esquema. Para obter mais informações, consulte [ALTER SCHEMA](r_ALTER_SCHEMA.md).
+ Para tabelas externas, ALTER revoga a permissão para alterar uma tabela em um AWS Glue Data Catalog habilitado para o Lake Formation. Essa permissão só é aplicada ao usar o Lake Formation.

DROP  
Dependendo do objeto do banco de dados, revoga as seguintes permissões do usuário ou perfil:  
+  Para tabelas, DROP revoga a permissão para remover uma tabela ou visualização. Para obter mais informações, consulte [DESCARTAR TABELA](r_DROP_TABLE.md). 
+  Para bancos de dados, DROP revoga a permissão para remover um banco de dados. Para obter mais informações, consulte [DROP DATABASE](r_DROP_DATABASE.md). 
+  Para esquemas, DROP revoga a permissão para remover um esquema. Para obter mais informações, consulte [DROP SCHEMA](r_DROP_SCHEMA.md). 

ASSUMEROLE  <a name="assumerole"></a>
Revoga a permissão de executar os comandos COPY, UNLOAD, EXTERNAL FUNCTION ou CREATE MODEL de usuários, perfis ou grupos com um perfil especificado. 

ON [ TABLE ] *table\$1name*   
Revoga as permissões especificadas em uma tabela ou visualização. A palavra-chave TABLE é opcional.

ON ALL TABLES IN SCHEMA *schema\$1name*   
Revoga as permissões especificadas em todas as tabelas no esquema referenciado.

( *column\$1name* [,...] ) ON TABLE *table\$1name*   <a name="revoke-column-level-privileges"></a>
Revoga as permissões especificadas de usuários, grupos ou PUBLIC nas colunas especificadas da tabela ou visualização do Amazon Redshift.

( *column\$1list* ) ON EXTERNAL TABLE *schema\$1name.table\$1name*   <a name="revoke-external-table-column"></a>
Revoga as permissões especificadas de um perfil do IAM nas colunas especificadas da tabela do Lake Formation no esquema referenciado.

ON EXTERNAL TABLE *schema\$1name.table\$1name*   <a name="revoke-external-table"></a>
Revoga as permissões especificadas de um perfil do IAM nas tabelas especificadas do Lake Formation no esquema referenciado.

ON EXTERNAL SCHEMA *schema\$1name*   <a name="revoke-external-schema"></a>
Revoga as permissões especificadas de um perfil do IAM no esquema referenciado.

FROM IAM\$1ROLE *iam\$1role*   <a name="revoke-from-iam-role"></a>
Indica o perfil do IAM que perde as permissões.

ROLE *role\$1name*   
Revoga as permissões do perfil especificado.

GROUP *nome\$1grupo*   
Revoga as permissões do grupo de usuários especificado.

PUBLIC   
Revoga as permissões de todos os usuários. PUBLIC representa um grupo que inclui sempre todos os usuários. As permissões de um usuário individual consistem na soma das permissões concedidas a PUBLIC, das permissões concedidas a todos os grupos aos quais o usuário pertence e de quaisquer permissões concedidas ao usuário individualmente.  
A revogação de PUBLIC para uma tabela externa do Lake Formation resulta na revogação da permissão para o grupo *todos* do Lake Formation.

CREATE   
Dependendo do objeto do banco de dados, as seguintes permissões são revogadas do usuário ou grupo de usuários:  
+ Para bancos de dados, usar a cláusula CREATE para revogar impede que os usuários criem esquemas no banco de dados.
+ Para esquemas, usar a cláusula CREATE para revogar impede que os usuários criem objetos em um esquema. Para renomear um objeto, o usuário deve ter a permissão CREATE e ser proprietário do objeto a ser renomeado. 
Por padrão, todos os usuários têm permissões CREATE e USAGE no esquema PUBLIC.

TEMPORARY \$1 TEMP   
Revoga a permissão para criar tabelas temporárias no banco de dados especificado.  
Por padrão, os usuários recebem permissão para criar tabelas temporárias por associação automática ao grupo PUBLIC. Para remover a permissão para todos os usuários criarem tabelas temporárias, revogue a permissão TEMP do grupo PUBLIC. Depois, conceda explicitamente a permissão para criar tabelas temporárias a usuários ou grupos de usuários específicos.

ON DATABASE *nome\$1bd*   
Revoga as permissões no banco de dados especificado.

USAGE   
Revoga as permissões USAGE em objetos de um esquema específico, que torna esses objetos inacessíveis aos usuários. Ações específicas nesses objetos devem ser revogadas separadamente (como a permissão EXECUTE em funções).  
Por padrão, todos os usuários têm permissões CREATE e USAGE no esquema PUBLIC.

ON SCHEMA *schema\$1name*   
Revoga as permissões no esquema especificado. Você pode usar permissões de esquema para gerenciar a criação de tabelas. A permissão CREATE para um banco de dados controla somente a criação de esquemas.

RESTRICT   
Revoga somente as permissões que o usuário concedeu diretamente. Esse comportamento é a configuração padrão.

EXECUTE ON PROCEDURE *procedure\$1name*   
Revoga a permissão EXECUTE em um procedimento armazenado específico. Como os nomes de procedimento armazenado podem ser sobrecarregados, você deverá incluir a lista de argumentos para o procedimento. Para obter mais informações, consulte [Nomeação de procedimentos armazenados](stored-procedure-naming.md).

EXECUTE ON ALL PROCEDURES IN SCHEMA *procedure\$1name*   
Revoga as permissões especificadas em todos os procedimentos no esquema referenciado.

USAGE ON LANGUAGE *nome\$1linguagem*   
Revoga a permissão USAGE em um idioma. Para funções definidas pelo usuário (UDFs) em Python, use `plpythonu`. Para UDFs SQL, use `sql`. Para procedimentos armazenados, use `plpgsql`.   
Para criar uma UDF, é necessário ter permissão de uso na linguagem para SQL ou `plpythonu` (Python). Por padrão, USAGE ON LANGUAGE SQL é concedido para PUBLIC. No entanto, é necessário conceder explicitamente USAGE ON LANGUAGE PLPYTHONU a usuários ou grupos específicos.   
Para revogar o uso na SQL, revogue primeiro o uso em PUBLIC. Depois, conceda o uso na SQL somente a usuários ou grupos específicos que tenham permissão para criar UDFs SQL. O exemplo a seguir revoga o uso na SQL em PUBLIC e concede o uso ao grupo de usuários `udf_devs`.   

```
revoke usage on language sql from PUBLIC;
grant usage on language sql to group udf_devs;
```
Para obter mais informações, consulte [Segurança e permissões de UDFs](udf-security-and-privileges.md).   
Para revogar o uso para procedimentos armazenados, primeiro revogue o uso em PUBLIC. Depois, conceda o uso na `plpgsql` somente a usuários ou grupos específicos que tenham permissão para criar procedimentos armazenados. Para obter mais informações, consulte [Segurança e privilégios para procedimentos armazenados](stored-procedure-security-and-privileges.md). 

ON COPY JOB *job\$1name*  <a name="on-copy-job-revoke"></a>
Revoga as permissões especificadas em um trabalho de cópia.

FOR \$1 ALL \$1 COPY \$1 UNLOAD \$1 EXTERNAL FUNCTION \$1 CREATE MODEL \$1 [, ...]  <a name="revoke-for"></a>
Especifica o comando SQL para o qual a permissão é revogada. Você pode especificar ALL para revogar a permissão nas instruções COPY, UNLOAD, EXTERN FUNCTION e CREATE MODEL. Esta cláusula aplica-se apenas à revogação da permissão ASSUMEROLE.

ALTER  
Revoga a permissão ALTER para usuários ou grupos de usuários que permite que aqueles que não possuem uma unidade de compartilhamento de dados alterem a unidade de compartilhamento de dados. Esta permissão é necessária para adicionar ou remover objetos de uma unidade de compartilhamento de dados ou para definir a propriedade PUBLICACCESSIBLE. Para obter mais informações, consulte [ALTER DATASHARE](r_ALTER_DATASHARE.md).

SHARE  
Revoga as permissões para que usuários e grupos de usuários adicionem consumidores a uma unidade de compartilhamento de dados. A revogação dessas permissões é necessária para impedir que o consumidor específico acesse a unidade de compartilhamento de dados de seus clusters. 

ON DATASHARE *datashare\$1name *  
Concede as permissões especificadas na unidade de compartilhamento de dados de referência.

FROM username  
Indica o usuário que perde as permissões.

FROM GROUP *group\$1name*  
Indica o grupo de usuários que perde as permissões.

WITH GRANT OPTION  
Indica que o usuário que perde as permissões pode, por sua vez, revogar as mesmas permissões para outros. Não é possível revogar WITH GRANT OPTION de um grupo ou de PUBLIC. 

USAGE  
Quando USAGE é revogado para uma conta de consumidor ou namespace dentro da mesma conta, a conta de consumidor especificada ou namespace dentro de uma conta não pode acessar o datashare e os objetos do datashare de forma somente leitura.   
Revogar a permissão USAGE revoga o acesso a uma unidade de compartilhamento de dados para os consumidores. 

FROM NAMESPACE 'clusternamespace GUID'   
Indica o namespace na mesma conta que faz com que os consumidores percam as permissões para a unidade de compartilhamento de dados. Os namespaces usam um identificador exclusivo global (GUID) alfanumérico de 128 bits.

FROM ACCOUNT 'accountnumber' [ VIA DATA CATALOG ]  
Indica o número de outra conta que remove as permissões dos consumidores para a unidade de compartilhamento de dados. Especificar “VIA DATA CATALOG” indica que você está revogando o uso da unidade de compartilhamento de dados para uma conta do Lake Formation. Omitir o número da conta significa que você está revogando da conta que detém o cluster.

ON DATABASE *shared\$1database\$1name> [, ...]*   <a name="revoke-datashare"></a>
Revoga as permissões de uso especificadas no banco de dados especificado que foi criado na unidade de compartilhamento de dados especificada. 

ON SCHEMA* shared\$1schema*   <a name="revoke-datashare"></a>
Revoga as permissões especificadas no esquema especificado que foi criado na unidade de compartilhamento de dados especificada.

FOR \$1 SCHEMAS \$1 TABLES \$1 FUNCTIONS \$1 PROCEDURES \$1 LANGUAGES \$1 COPY JOBS\$1 IN   
Especifica os objetos de banco de dados dos quais revogar permissão. Os parâmetros após IN definem o escopo da permissão revogada.

CREATE MODEL  
Revoga a permissão CREATE MODEL para criar modelos de machine learning no banco de dados especificado.

ON MODEL *model\$1name*  
Revoga a permissão EXECUTE em um modelo específico. 

ACCESS CATALOG  
Revoga a permissão para exibir metadados relevantes de objetos aos quais a função tem acesso.

[ ADMIN OPTION FOR ] \$1 role \$1 [, ...]  
A função que você revoga de um usuário especificado que tem a WITH ADMIN OPTION.

FROM \$1 role \$1 [, ...]  
A função da qual você revoga a função especificada.

EXPLAIN \$1 RLS \$1 MASKING \$1 FROM ROLE *rolename*  
Revoga a permissão para explicar os filtros de política de segurança de uma consulta no plano EXPLAIN de um perfil. RLS revoga a permissão para explicar filtros de política de segurança por linha. MASKING revoga permissão a permissão para explicar os filtros da política de mascaramento dinâmico de dados.

IGNORE RLS FROM ROLE *rolename*   
Revoga a permissão para ignorar políticas de segurança por linha para uma consulta de um perfil.

FROM \$1 RLS \$1 MASKING \$1 POLICY *policy\$1name*  
Indica a política de segurança que está perdendo as permissões. TO RLS POLICY indica uma política de segurança por linha. TO MASKING POLICY indica uma política de mascaramento dinâmico de dados.

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

Para saber mais sobre as observações de uso de REVOKE, consulte [Observações de uso](r_REVOKE-usage-notes.md).

## Exemplos
<a name="r_REVOKE-examples-link"></a>

Para conferir exemplos de como usar REVOKE, consulte [Exemplos](r_REVOKE-examples.md).

# 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'
);
```

# Exemplos
<a name="r_REVOKE-examples"></a>

O exemplo a seguir revoga os privilégios INSERT em uma tabela SALES do grupo de usuários GUESTS. Esse comando impede que os membros de GUESTS carreguem dados na tabela SALES usando o comando INSERT. 

```
revoke insert on table sales from group guests;
```

O exemplo a seguir revoga o privilégio SELECT em todas as tabelas no esquema QA\$1TICKIT do usuário `fred`.

```
revoke select on all tables in schema qa_tickit from fred;
```

O exemplo revoga o privilégio de selecionar de uma exibição para o usuário `bobr`.

```
revoke select on table eventview from bobr;
```

O exemplo a seguir revoga o privilégio de criar tabelas temporárias no banco de dados TICKIT de todos os usuários.

```
revoke temporary on database tickit from public;
```

O exemplo a seguir revoga o privilégio SELECT nas colunas `cust_name` `cust_phone` e da tabela `cust_profile` do usuário `user1`. 

```
revoke select(cust_name, cust_phone) on cust_profile from user1;
```

O exemplo a seguir revoga o privilégio SELECT nas colunas `cust_name` e `cust_phone`, e o privilégio UPDATE na coluna `cust_contact_preference`, da tabela `cust_profile` do grupo `sales_group`. 

```
revoke select(cust_name, cust_phone), update(cust_contact_preference) on cust_profile from group sales_group;
```

O exemplo a seguir mostra o uso da palavra-chave ALL para revogar privilégios SELECT e UPDATE em três colunas da tabela `cust_profile` do grupo `sales_admin`. 

```
revoke ALL(cust_name, cust_phone,cust_contact_preference) on cust_profile from group sales_admin;
```

O exemplo a seguir revoga o privilégio SELECT na coluna `cust_name` da exibição `cust_profile_vw` do usuário `user2`. 

```
revoke select(cust_name) on cust_profile_vw from user2;
```

## Exemplos de revogação da permissão USAGE de bancos de dados criados a partir de unidades de compartilhamento de dados
<a name="r_REVOKE-examples-datashare"></a>

O exemplo a seguir revoga o acesso à unidade de compartilhamento de dados `salesshare` do namespace `13b8833d-17c6-4f16-8fe4-1a018f5ed00d`.

```
REVOKE USAGE ON DATASHARE salesshare FROM NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
```

O exemplo a seguir revoga a permissão USAGE no `sales_db` de `Bob`.

```
REVOKE USAGE ON DATABASE sales_db FROM Bob;
```

O exemplo a seguir REVOGA a permissão USAGE no `sales_schema` de `Analyst_role`.

```
REVOKE USAGE ON SCHEMA sales_schema FROM ROLE Analyst_role;
```

## Exemplos de revogação de permissões em escopo
<a name="r_REVOKE-examples-scoped"></a>

O exemplo a seguir revoga uso para todos os esquemas atuais e futuros no banco de dados `Sales_db` da função `Sales`.

```
REVOKE USAGE FOR SCHEMAS IN DATABASE Sales_db FROM ROLE Sales;
```

O exemplo a seguir revoga a capacidade de conceder a permissão SELECT para todas as tabelas atuais e futuras no banco de dados `Sales_db` do usuário `alice`. `alice` mantém acesso a todas as tabelas em `Sales_db`.

```
REVOKE GRANT OPTION SELECT FOR TABLES IN DATABASE Sales_db FROM alice;
```

O exemplo a seguir revoga a permissão EXECUTE para funções no esquema `Sales_schema` do usuário `bob`.

```
REVOKE EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema FROM bob;
```

O exemplo a seguir revoga todas as permissões para todas as tabelas no esquema do `ShareSchema` do banco de dados `ShareDb` da função `Sales`. Ao especificar o esquema, você também pode especificar o banco de dados do esquema usando o formato de duas partes `database.schema`.

```
REVOKE ALL FOR TABLES IN SCHEMA ShareDb.ShareSchema FROM ROLE Sales;
```

O exemplo a seguir é o mesmo do anterior. Você pode especificar o banco de dados do esquema usando a palavra-chave `DATABASE`, em vez de usar um formato de duas partes.

```
REVOKE ALL FOR TABLES IN SCHEMA ShareSchema DATABASE ShareDb FROM ROLE Sales;
```

## Exemplos de revogação do privilégio ASSUMEROLE
<a name="r_REVOKE-examples-assumerole"></a>

Veja a seguir exemplos de revogação do privilégio ASSUMEROLE. 

Um superusuário deve habilitar o uso do privilégio ASSUMEROLE para usuários e grupos executando a seguinte instrução uma vez no cluster: 

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

A instrução a seguir revoga o privilégio ASSUMEROLE do usuário reg\$1user1 em todas as funções para todas as operações. 

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

## Exemplos de revogação do privilégio ROLE
<a name="r_REVOKE-examples-role"></a>

O exemplo a seguir revoga a função sample\$1role1 de sample\$1role2.

```
CREATE ROLE sample_role2;
GRANT ROLE sample_role1 TO ROLE sample_role2;
REVOKE ROLE sample_role1 FROM ROLE sample_role2;
```

O exemplo a seguir revoga os privilégios do sistema do user1.

```
GRANT ROLE sys:DBA TO user1;
REVOKE ROLE sys:DBA FROM user1;
```

O exemplo a seguir revoga sample\$1role1 e sample\$1role2 do user1.

```
CREATE ROLE sample_role1;
CREATE ROLE sample_role2;
GRANT ROLE sample_role1, ROLE sample_role2 TO user1;
REVOKE ROLE sample_role1, ROLE sample_role2 FROM user1;
```

O exemplo a seguir revoga sample\$1role2 com a ADMIN OPTION do user1.

```
GRANT ROLE sample_role2 TO user1 WITH ADMIN OPTION;
REVOKE ADMIN OPTION FOR ROLE sample_role2 FROM user1;
REVOKE ROLE sample_role2 FROM user1;
```

O exemplo a seguir revoga sample\$1role1 e sample\$1role2 de sample\$1role5.

```
CREATE ROLE sample_role5;
GRANT ROLE sample_role1, ROLE sample_role2 TO ROLE sample_role5;
REVOKE ROLE sample_role1, ROLE sample_role2 FROM ROLE sample_role5;
```

O exemplo a seguir revoga os privilégios do sistema CREATE SCHEMA e DROP SCHEMA de sample\$1role1.

```
GRANT CREATE SCHEMA, DROP SCHEMA TO ROLE sample_role1;
REVOKE CREATE SCHEMA, DROP SCHEMA FROM ROLE sample_role1;
```