Oracle 11g — Comando GRANT e privilégios
Gabarito: letra C. A sintaxe correta do comando GRANT é GRANT <privilégios> ON <objeto> TO <usuário> [WITH GRANT OPTION]. A opção WITH GRANT OPTION permite que o usuário que recebeu o privilégio também possa concedê-lo a outros. Portanto, para conceder SELECT na tabela Contribuintes a Paulo com a permissão de repasse, o comando é: GRANT SELECT ON Contribuintes TO Paulo WITH GRANT OPTION; — exatamente o que a alternativa C descreve.
A questão testa o conhecimento sobre a sintaxe da linguagem DCL (Data Control Language) do SQL, especificamente o comando GRANT.
Alternativa A — ❌ Incorreta
Utiliza WITH CASCADE OPTION, que não existe no GRANT. O termo correto é WITH GRANT OPTION. Além disso, CASCADE é usado em operações de integridade referencial (FOREIGN KEY), não em concessão de privilégios.
Alternativa B — ❌ Incorreta
Além de usar CASCADE (errado), a ordem das cláusulas está invertida: a sintaxe correta é ON <objeto> TO <usuário>, e não TO <usuário> ON <objeto>.
Alternativa C — ✅ Correta ⟵ GABARITO
Segue exatamente a sintaxe do GRANT: ON Contribuintes TO Paulo WITH GRANT OPTION. A opção WITH GRANT OPTION permite que Paulo repasse o privilégio a outros.
Alternativa D — ❌ Incorreta
Usa WITH EXTENDS OPTION, que não é uma cláusula válida no comando GRANT. A cláusula correta é WITH GRANT OPTION.
Alternativa E — ❌ Incorreta
Usa FROM em vez de ON. A cláusula que especifica o objeto é ON, e não FROM. FROM é utilizado no comando REVOKE, que revoga privilégios.
Conclusão: A única alternativa que respeita a sintaxe correta e a cláusula adequada para permitir o repasse de privilégio é a letra C.