REVOKE - Amazon Redshift

REVOKE

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.

Sintaxe

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 } [,...] | 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 ]

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 ]

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 }

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 } [, ...]
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 } [, ...]

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_DATABASE_PRIVILEGES. Você pode visualizar o escopo das permissões com escopo em nível de esquema em SVV_SCHEMA_PRIVILEGES.

Esta é a sintaxe para revogação de permissões em escopo de usuários ou perfis. Para ter mais informações sobre permissões com escopo definido, consulte Permissões em escopo.

REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER } [,...] | 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 } [, ...]

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;

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 ]

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 } [, ...]

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. É possível revogar o privilégio usando a instrução REVOKE.

REVOKE EXPLAIN RLS FROM ROLE rolename

Veja a seguir a sintaxe para conceder permissões para ignorar políticas de segurança no nível da linha para uma consulta.

REVOKE IGNORE RLS FROM ROLE rolename

A sintaxe a seguir revoga permissões da política de segurança no nível da linha especificada.

REVOKE SELECT ON [ TABLE ] table_name [, ...] FROM RLS POLICY policy_name [, ...]

Parâmetros

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.

ALL [ PRIVILEGES ]

Revoga de um vez todas as permissões disponíveis do usuário ou grupo especificado. A palavra-chave PRIVILEGES é opcional.

nota

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.

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 ter mais informações, consulte ALTER TABLE.

  • Para bancos de dados, ALTER revoga a permissão para alterar um banco de dados. Para ter mais informações, consulte ALTER DATABASE.

  • Para esquemas, ALTER revoga a permissão para alterar um esquema. Para ter mais informações, consulte ALTER SCHEMA.

  • 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

Revoga a permissão para descartar uma tabela. Essa permissão se aplica no Amazon Redshift e em um AWS Glue Data Catalog que está habilitado para o Lake Formation.

ASSUMEROLE

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_name

Revoga as permissões especificadas em uma tabela ou visualização. A palavra-chave TABLE é opcional.

ON ALL TABLES IN SCHEMA schema_name

Revoga as permissões especificadas em todas as tabelas no esquema referenciado.

( column_name [,...] ) ON TABLE table_name

Revoga as permissões especificadas de usuários, grupos ou PUBLIC nas colunas especificadas da tabela ou visualização do Amazon Redshift.

( column_list ) ON EXTERNAL TABLE schema_name.table_name

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_name.table_name

Revoga as permissões especificadas de um perfil do IAM nas tabelas especificadas do Lake Formation no esquema referenciado.

ON EXTERNAL SCHEMA schema_name

Revoga as permissões especificadas de um perfil do IAM no esquema referenciado.

FROM IAM_ROLE iam_role

Indica o perfil do IAM que perde as permissões.

ROLE role_name

Revoga as permissões do perfil especificado.

GROUP nome_grupo

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.

nota

Por padrão, todos os usuários têm permissões CREATE e USAGE no esquema PUBLIC.

TEMPORARY | TEMP

Revoga a permissão para criar tabelas temporárias no banco de dados especificado.

nota

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_bd

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

nota

Por padrão, todos os usuários têm permissões CREATE e USAGE no esquema PUBLIC.

ON SCHEMA schema_name

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_name

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.

EXECUTE ON ALL PROCEDURES IN SCHEMA procedure_name

Revoga as permissões especificadas em todos os procedimentos no esquema referenciado.

USAGE ON LANGUAGE nome_linguagem

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.

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 .

FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL } [, ...]

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 ter mais informações, consulte ALTER DATASHARE.

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_name

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_name

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_database_name> [, ...]

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_schema

Revoga as permissões especificadas no esquema especificado que foi criado na unidade de compartilhamento de dados especificada.

FOR { SCHEMAS | TABLES | FUNCTIONS | PROCEDURES | LANGUAGES } 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_name

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 ] { role } [, ...]

A função que você revoga de um usuário especificado que tem a WITH ADMIN OPTION.

FROM { role } [, ...]

A função da qual você revoga a função especificada.

Para saber mais sobre as observações de uso de REVOKE, consulte Observações de uso.

Para conferir exemplos de como usar REVOKE, consulte Exemplos.