Observações de uso - Amazon Redshift

Observações de uso

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

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

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