você está aqui: Home  → Colunistas  →  Bancos de Dados Livres

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

Sobre o autor

Luiz Paulo de Oliveira Santos teve seu primeiro contato com computadores em 1984, estudou BASIC para equipamentos de 8 bits (ZX-81 e Apple 2), em 1985 com o ambiente de 16 bits, e em 1988 com o ambiente de 32 bits. Em 1993 foi um dos primeiros Brasileiros a ter contato com o VBK que em 1995 se tornou o Delphi. Graduou em Tecnologia Em Processamento de Dados, cursou especialização em Análise de Sistemas e atualmente é graduando em Ciências Jurídicas. Atua como analista de suporte de redes da Universidade Metodista de Piracicaba, é editor da revista DB Freemagazine (uma revista gratuíta focada exclusivamente para bancos de dados Cliente/Servidor) e professor nas Faculdades Integradas Einstein de Limeira no curso de Tecnologia em Sistemas de Informação. Tem experiência nas áreas: Sistemas de Computação, Redes e Teleprocessamento de Dados, Bancos de Dados cliente-servidor e SQL. É autor do livro Firebird - Dicas de Segurança, publicado pela Editora Ciência Moderna.

Recomende este artigo nas redes sociais

 

 

Veja a relação completa dos artigos desta coluna