REVOKE: Controle de direitos no SQL - Parte 2

Por Luiz Paulo de O. Santos

Data de Publicação: 18 de Janeiro de 2007

Salve a todos, após as férias, retornamos dando continuidade no assunto controle de direitos no SQL. No ultimo artigo tratamos o GRANT que é uma instrução que atribuir direitos aos usuários de um banco, e o REVOKE é utilizado para revogar, cancelar o direito atribuído com GRANT.

Logo, tão importante como atribuir um direito a um usuário é importante revogarmos esse quando necessário.

E isso torna-se mais ou menos importante de acordo com a implementação que se deu no banco. Alguns desenvolvedores / DBA criam usuários para aplicações, outros criam diversos usuários com diferentes direitos para a mesma aplicação, e outros criam usuários no banco para cada usuário que será autenticado na aplicação ou na rede. E alguns bancos permite que utilizemos os usuários do POSIX como usuários do banco. Indiferente de qual seja a sua situação, cuidados devem ser tomados e é comum precisarmos revogar direitos outrora atribuídos.

A instrução é:

  REVOKE lista de privilégios ON [Tabela] TO usuários | rules

Onde:

lista de privilégios: pode ser todos os privilégios ALL [PRIVILEGES] ou alguns separados por vírgula, como: SELECT, INSERT, UPDATE ou DELETE.

usuários: pode ser PUBLIC (todos) ou o nomes dos usuários que deseja atrubuir o direito. Utiliza-se vírgula para separar o nome dos usuários que se deseja atribuir acesso.

Nota: Outra situação importante é que o REVOKE pode ser empregado para revogar não apenas as atribuições de direitos, mas também proibições que foram aplicadas com GRANT.

O REVOKE revoga os direitos atribuídos, ou seja, podemos revogar o(s) direito(s) para que usuários possam ter para:

SELECT, UPDATE, INSERT, DELETE, REFERENCES e outros.

E tanto para o UPDATE como para o REFERENCES se o(s) campo(s) for(em) omitido(s) a regra se aplicará a todos os campos. Antes de usar essa possibilidade, procure saber se seu banco contempla essa implementação.

Exemplos:

  REVOKE SELECT ON CLIENTES TO PUBLIC

  REVOKE SELECT,INSERT ON PESSOAS TO JOSE,PEDRO

  REVOKE UPDATE(SALARIO) ON FOLPAGTO TO ANAMARIA

Pode-se revogar direitos de execução de procedures para usuários. Antes de utilizar verifique se o seu banco suporte GRANT / REVOKE com EXECUTE. Observe o exemplo adiante:

  REVOKE EXECUTE ON PROCEDURE SOMATUDO TO ANA,JOSE

Cabe relembrar a todos que muito cuidado deve ser empregada essa instrução.

Cuidado com as diferenças de sintaxe ou opções entre bancos, isso é mais comum do que imaginamos, consulte o manual do seu SQL e certifique-se da sintaxe antes de executá-la.

Até a próxima...