Foi solicitado ao administrador de banco de dados, responsável pelo gerenciamento de um sistema de banco de dados, que fizesse uma atualização nas permissões do usuário PROFESSOR01. Entre suas responsabilidades estão a criação de conta e a concessão e revogação de privilégios. Assim, observe a expressão a seguir: GRANT SELECT, UPDATE (NOTA), INSERT, DELETE ON ALUNOS TO PROFESSOR01 WITH GRANT OPTION Considerando o caso hipotético, assinale a afirmativa que descreve corretamente a função da expressão anterior.
- A)Concede privilégios que permitem a conta PROFESSOR01 recuperar, atualizar, inserir e excluir tuplas da relação ALUNOS, possibilitando que esses privilégios sejam repassados a outras contas.
Errada, porque o UPDATE foi concedido apenas para a coluna NOTA, e não para atualizar a relação ALUNOS inteira.
- B)Concede privilégios que permitem a conta PROFESSOR01 recuperar, atualizar o atributo nota e inserir e excluir tuplas da relação ALUNOS, possibilitando que esses privilégios sejam repassados a outras contas.
Certa, pois o comando concede SELECT, INSERT e DELETE na tabela ALUNOS, UPDATE na coluna NOTA, e WITH GRANT OPTION permite repassar esses privilégios.
- C)Concede privilégios que permitem a conta PROFESSOR01 atualizar o atributo nota e inserir e excluir tuplas da relação ALUNOS. O comando GRANT OPTION é utilizado para conceder privilégio temporário a conta PROFESSOR01.
Errada, porque WITH GRANT OPTION não significa privilégio temporário, e o comando também concede SELECT, não apenas update, insert e delete.
- D)Concede privilégios que permitem a conta PROFESSOR01 recuperar, atualizar, inserir e excluir tuplas dos ALUNOS que possuem notas. O comando GRANT OPTION é utilizado para conceder privilégio temporário a conta PROFESSOR01.
Errada, porque o comando não fala em "ALUNOS que possuem notas" e o WITH GRANT OPTION não trata de temporariedade.
Gabarito: B
No SQL, o comando GRANT serve para conceder privilégios sobre tabelas, colunas ou outros objetos do banco. Aqui, a expressão informa que o usuário PROFESSOR01 recebe permissão para fazer SELECT, INSERT e DELETE na tabela ALUNOS, além de UPDATE somente na coluna NOTA. Isso é importante: quando o UPDATE vem com o nome da coluna entre parênteses, o privilégio não vale para a tabela inteira, mas apenas para aquele campo específico. Bem mais cirúrgico, como um bisturi de banco de dados. Outro ponto-chave é o trecho WITH GRANT OPTION. Ele não cria privilégio temporário, nem limita o tempo de uso. O que ele faz é permitir que PROFESSOR01 repasse esses privilégios a outras contas, ou seja, conceda o mesmo direito a terceiros. Esse detalhe costuma aparecer bastante em prova para confundir quem associa "option" com algo provisório. Por isso, o gabarito B está correto: a conta PROFESSOR01 pode recuperar, atualizar a coluna NOTA, inserir e excluir tuplas da relação ALUNOS, e ainda pode transferir esses privilégios para outros usuários. Em termos conceituais, a banca cobra exatamente a leitura fina da sintaxe do GRANT e da diferença entre privilégio sobre a tabela e privilégio sobre coluna.