Junior é o administrador do Banco de Dados da sua empresa e percebeu que um programador tinha acesso de alteração indevido a uma tabela. Para cancelar a permissão previamente concedida ao programador, Junior deve usar o comando SQL:
- A)GRANT;
Errada, porque GRANT serve para conceder permissões, e não para cancelar uma permissão já concedida.
- B)REVOKE;
Certa, porque REVOKE é o comando SQL usado para retirar ou cancelar privilégios previamente concedidos.
- C)UPDATE;
Errada, porque UPDATE altera dados de linhas em uma tabela, não permissões de acesso.
- D)DELETE;
Errada, porque DELETE remove registros de uma tabela, não direitos concedidos a usuários.
- E)TRUNCATE.
Errada, porque TRUNCATE apaga todos os dados de uma tabela de forma rápida, sem relação com permissões.
Gabarito: B
Quando o assunto é permissão em SQL, pense em um jogo de acesso: primeiro alguém pode receber um direito e, depois, esse direito pode ser retirado. É exatamente isso que acontece quando o administrador percebe que um usuário recebeu uma permissão indevida e precisa cancelá-la. Para conceder, usa-se a ideia de autorizar; para retirar uma autorização já dada, usa-se o comando adequado de revogação. No caso da questão, Junior quer cancelar uma permissão previamente concedida ao programador. O comando próprio para desfazer privilégios em SQL é o REVOKE. Ele serve justamente para remover direitos de acesso, como SELECT, INSERT, UPDATE e outros, de um usuário ou papel. Já o GRANT faz o caminho oposto: ele concede permissões. Então, se a dúvida é retirar um direito já existente, GRANT não resolve. É a clássica confusão de prova entre dar e tirar acesso, e a banca adora esse casal problemático. Em resumo: para revogar permissão, use REVOKE. Em linguagem de banco de dados, isso é conhecimento básico de DCL (Data Control Language), que trata de controle de acesso e privilégios.