Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FCC 2017

Banco de DadosSQL
Código
fc040184
Banca
FCC
Órgão
TST
Ano
2017
Nível
Superior
Cargo
Analista Judiciário – Suporte em Tecnologia da Informação
Um Database Administrator − DBA deseja criar uma função chamada analista, atribuir o privilégio create table a ela e atribuí-la ao usuário pedro. Para isso, terá que usar as instruções
  1. ACREATE FUNCTION analista;ADD PRIVILEGE create table TO analista;GRANT analista TO pedro;
  2. BCREATE ROLE analista;GRANT ADD create table TO analista;ADD ROLE analista TO pedro;
  3. CCREATE FUNCTION analista;GRANT create table TO analista;ADD FUNCTION analista TO pedro;
  4. DCREATE ROLE analista;GRANT create table TO analista;GRANT analista TO pedro;
  5. ECREATE ROLE analista;GRANT create table TO analista;ADD analista TO Pedro WITH GRANT OPTION;
Revelar gabarito e comentário

GabaritoD — CREATE ROLE analista; GRANT create table TO analista; GRANT analista TO pedro;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comandos SQL DCL: Criação de Roles e Concessão de Privilégios

Gabarito: letra D. A criação de um papel (role) no SQL é feita com CREATE ROLE, a concessão de privilégios a esse papel usa GRANT, e a atribuição do papel a um usuário também se dá com GRANT. A alternativa D segue exatamente essa sequência: CREATE ROLE analista; GRANT create table TO analista; GRANT analista TO pedro;.

A questão testa o conhecimento da sintaxe correta para gerenciar permissões por meio de roles. O comando CREATE FUNCTION é usado para criar funções armazenadas, não papéis. Já ADD PRIVILEGE e ADD ROLE não fazem parte do SQL padrão.

  1. 1CREATE ROLE analista
  2. 2GRANT create table TO analista
  3. 3GRANT analista TO pedro
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Usa CREATE FUNCTION em vez de CREATE ROLE, e o comando ADD PRIVILEGE não existe na sintaxe SQL. A atribuição da role ao usuário deveria ser com GRANT, mas a instrução GRANT analista TO pedro está correta isoladamente; porém, os erros anteriores invalidam a alternativa.

Alternativa B — ❌ Incorreta

Embora use CREATE ROLE, a concessão de privilégio é feita com GRANT ADD create table, que é incorreta (o ADD é desnecessário). A atribuição da role usa ADD ROLE, que não é um comando SQL válido; o correto é GRANT analista TO pedro.

Alternativa C — ❌ Incorreta

Novamente usa CREATE FUNCTION no lugar de CREATE ROLE. O comando ADD FUNCTION não existe para atribuir papéis.

Alternativa D — ✅ Correta ⟵ GABARITO

Sequência correta:

  • CREATE ROLE analista; cria o papel.

  • GRANT create table TO analista; concede o privilégio de criar tabelas ao papel.

  • GRANT analista TO pedro; atribui o papel ao usuário pedro.

Tudo conforme a sintaxe DCL padrão.

Alternativa E — ❌ Incorreta

Usa ADD analista TO pedro em vez de GRANT, e inclui WITH GRANT OPTION de forma inadequada. A opção WITH GRANT OPTION só é usada no GRANT de privilégios, não na atribuição da role em si. Além disso, a sintaxe ADD não é reconhecida.

NÃO CAIA NESSA!

A banca tenta confundir com CREATE FUNCTION (que cria funções, não papéis) e com comandos inexistentes como ADD PRIVILEGE e ADD ROLE. Lembre-se: para papéis, sempre use CREATE ROLE e GRANT.

Gabarito: letra D

Link permanente: /questoes/fc040184