por. Eng. Celso Arruda - MCDBA, MCSE, VCP , Analista de Sistemas, MBA
REVOKE em SQL: Revogando Permissões com Segurança e Controle
Introdução
Em ambientes de banco de dados multiusuários, o controle de acesso é essencial para garantir a integridade, segurança e confidencialidade das informações. Nesse contexto, o comando REVOKE surge como uma ferramenta fundamental, permitindo que administradores e desenvolvedores removam permissões concedidas anteriormente a usuários ou roles (funções).
O que é o comando REVOKE?
O comando REVOKE é parte da DCL (Data Control Language) e é usado para revogar privilégios específicos que foram concedidos com o comando GRANT. Ele atua como o "anti-GRANT", removendo autorizações como leitura (SELECT), escrita (INSERT, UPDATE, DELETE), execução de procedimentos, entre outras permissões.
Sintaxe básica
REVOKE permissão ON objeto FROM usuário;
Exemplo:
REVOKE SELECT, INSERT ON clientes FROM usuario_teste;
Essa instrução remove do usuário usuario_teste as permissões de seleção e inserção na tabela clientes.
Permissões que podem ser revogadas
Entre os privilégios mais comuns que podem ser revogados estão:
SELECT – Leitura de dados
INSERT – Inserção de registros
UPDATE – Atualização de dados
DELETE – Exclusão de registros
EXECUTE – Execução de funções ou procedimentos armazenados
ALL – Revoga todas as permissões concedidas
Uso prático e segurança
Imagine que um analista temporário teve acesso a determinadas tabelas por um período específico. Após o fim do contrato, é necessário revogar esse acesso para evitar riscos à segurança dos dados. Um simples REVOKE garante que ele não possa mais consultar, alterar ou excluir informações.
REVOKE ALL ON relatorio_vendas FROM analista_temp;
Revogando privilégios com GRANT OPTION
Se um usuário tiver a permissão de conceder privilégios a outros (WITH GRANT OPTION), você também pode revogar esse direito:
REVOKE GRANT OPTION FOR SELECT ON vendas FROM gerente;
Boas práticas com REVOKE
Acompanhe os privilégios concedidos e mantenha logs de alterações;
Revogue acessos temporários imediatamente após o término do uso;
Utilize roles (funções) para gerenciar permissões em grupos de usuários;
Evite permissões amplas como GRANT ALL sem controle — lembre-se que o REVOKE é sua última linha de defesa.
O comando REVOKE é essencial para manter um ambiente de banco de dados seguro e bem controlado. Ele garante que os acessos sejam concedidos apenas enquanto forem necessários, reduzindo riscos de vazamento de dados, erros e ações mal-intencionadas. Em conjunto com GRANT, forma o alicerce da segurança em SQL, garantindo que apenas as pessoas certas tenham acesso às informações certas, no momento certo.