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...
Veja a relação completa dos artigos da Bancos de Dados Livres
Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS
Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.
Opinião dos Leitores
09 Jun 2009, 13:57
Boa tarde, preciso tirar o privilégio de um usuario para uma tabela especifica de um banco de dados, esse comando tem que ser feito pela interface do MySql 5.1
Teria como me ajudar??
Att,
Eder
19 Jan 2007, 12:03


