PostgreSQL REVOKE
O comando `REVOKE` no PostgreSQL é utilizado para remover privilégios previamente concedidos a um usuário ou função. É essencial para gerenciar o acesso aos objetos do banco de dados, garantindo a segurança e a conformidade dos dados.
Uso
O comando `REVOKE` é utilizado quando há necessidade de retirar permissões de usuários ou funções em objetos específicos do banco de dados, como tabelas ou esquemas. Geralmente é usado para reforçar a segurança ou ajustar os controles de acesso.
REVOKE privilege [, ...]
ON object_name [, ...]
FROM role_name [, ...];
Nessa sintaxe, `REVOKE` remove os privilégios especificados das funções definidas nos objetos designados. As vírgulas são usadas para separar vários privilégios, objetos ou funções.
Tipos de privilégios
Os privilégios comuns que podem ser revogados incluem:
- `SELECT`
- `INSERT`
- `UPDATE`
- `DELETE`
- `TRUNCATE`
- `REFERÊNCIAS`
- `TRIGGER`
Exemplos
1. Tabela básica Revogação de privilégios
REVOKE SELECT
ON employees
FROM user123;
Este exemplo revoga o privilégio `SELECT` na tabela `employees` do usuário `user123`. Se `user123` não tiver o privilégio `SELECT`, esse comando não terá efeito.
2. Revogação de vários privilégios
REVOKE INSERT, UPDATE
ON projects
FROM manager_role;
Aqui, os privilégios `INSERT` e `UPDATE` são removidos da `manager_role` na tabela `projects`, limitando sua capacidade de modificar dados.
3. Revogação de todos os privilégios de um esquema
REVOKE ALL PRIVILEGES
ON SCHEMA sales_data
FROM analyst_role;
Esse exemplo remove todos os privilégios concedidos a `analyst_role` no esquema `sales_data`, impedindo efetivamente qualquer interação com os objetos do esquema.
Dicas e práticas recomendadas
- Revise os privilégios regularmente. As auditorias regulares dos privilégios do usuário podem ajudar a manter a segurança e os controles de acesso adequados.
- Use funções em vez de usuários individuais. O gerenciamento de privilégios por meio de funções simplifica a administração e o dimensionamento.
- Teste as alterações de privilégios em um ambiente de desenvolvimento. Antes de aplicar as alterações na produção, o teste em uma configuração de desenvolvimento pode evitar problemas de acesso acidental.
- Documentar as alterações de privilégios. A manutenção de registros de alterações garante a rastreabilidade e ajuda em auditorias futuras ou na solução de problemas.
- Compreender os privilégios padrão e as funções herdadas. A revogação de privilégios não afeta os privilégios concedidos a quaisquer funções das quais o usuário possa fazer parte.
- Esteja ciente do comportamento padrão da função. Entender como os privilégios padrão e as funções interagem pode evitar problemas de acesso não intencional.