Questão nº 37
Questão de Tecnologia da Informação · FCC TRE-PR 2017 (nº 37)
Um Database Administrator − DBA criou uma função no Oracle chamada programador utilizando o comando `CREATE ROLE programador;`. Em seguida, concedeu o privilégio de criação de tabela à função utilizando o comando `GRANT create table TO programador;`. Para conceder a função programador ao usuário Pedro, o DBA deve utilizar o comando
- A`ASSIGN programador TO Pedro WITH GRANT OPTION;`
- B`GRANT programador TO Pedro;` (alternativa correta)
- C`BIND Pedro TO programador;`
- D`ADD Pedro TO programador;`
- E`GRANT ADD Pedro TO programador;`
Resposta comentada
Gabarito Alternativa B
Em Oracle, roles (funções) são conjuntos de privilégios (permissões) que podem ser concedidos a usuários, simplificando a gestão de segurança ao agrupar permissões comuns. Para conceder uma role a um usuário, utiliza-se o comando `GRANT`.
(A) Incorreta: `ASSIGN` não é um comando SQL válido em Oracle para conceder roles ou privilégios; esta é a armadilha, pois `WITH GRANT OPTION` é um conceito válido para permitir que o receptor da role a conceda a outros, mas o comando principal está errado.
(B) Correta: Este é o comando SQL padrão e correto em Oracle para conceder uma role (`programador`) a um usuário (`Pedro`).
(C) Incorreta: `BIND` não é um comando SQL válido em Oracle para conceder roles ou privilégios.
(D) Incorreta: `ADD` não é um comando SQL válido em Oracle para conceder roles ou privilégios.
(E) Incorreta: A sintaxe está incorreta; `GRANT` é seguido diretamente pelo nome da role ou privilégio.
Fonte: FCC TRE-PR 2017 Técnico Judiciário - Área Apoio Especializado - Especialidade Programação de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.