Pular para o conteúdo principal

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

Banco de DadosOracle
Código
fc037992
Banca
FCC
Órgão
TRE-PR
Ano
2017
Nível
Médio
Cargo
Técnico Judiciário - Programação de Sistemas
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
  1. AASSIGN programador TO Pedro WITH GRANT OPTION;
  2. BGRANT programador TO Pedro;
  3. CBIND Pedro TO programador;
  4. DADD Pedro TO programador;
  5. EGRANT ADD Pedro TO programador;
Revelar gabarito e comentário

GabaritoB — GRANT programador 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”.

Oracle – Concessão de Roles

Gabarito: letra B. No Oracle, para conceder uma função (role) a um usuário, utiliza-se o comando GRANT <role> TO <usuário>. A sintaxe é a mesma usada para conceder privilégios, mas sem a cláusula ON e sem listar privilégios. A alternativa B reproduz exatamente essa sintaxe: GRANT programador TO Pedro;.

A banca testa o conhecimento da sintaxe do comando GRANT para atribuição de papéis (roles) a usuários no Oracle. O padrão SQL e Oracle determinam que a concessão de uma role a um usuário segue a forma:

SQL – Comando GRANT para roles:

GRANT role_name TO user_name;

No enunciado, a role programador já foi criada e recebeu privilégios. Agora o DBA precisa atribuí-la ao usuário Pedro usando exatamente o comando que concede a role diretamente ao usuário.

Concessão de roles (Oracle)
  • 1Sintaxe correta
    • GRANT role TO user
    • Ex.: GRANT programador TO Pedro
  • 2Comandos incorretos
    • ASSIGN ... TO
    • BIND ... TO
    • ADD ... TO
    • GRANT ADD ... TO
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

ASSIGN programador TO Pedro WITH GRANT OPTION; – O comando ASSIGN não existe na sintaxe SQL para concessão de roles ou privilégios. O correto é GRANT. Além disso, WITH GRANT OPTION é opção válida, mas o verbo principal deve ser GRANT.

Alternativa B — ✅ Correta ⟵ GABARITO

GRANT programador TO Pedro; – Exatamente a sintaxe correta. Concede a role programador ao usuário Pedro, permitindo que ele exerça os privilégios associados à role.

Alternativa C — ❌ Incorreta

BIND Pedro TO programador;BIND não é um comando SQL para concessão de privilégios ou roles. O termo BIND é usado em outros contextos (ex.: bind variables), não aqui.

Alternativa D — ❌ Incorreta

ADD Pedro TO programador;ADD não é um comando SQL para atribuir roles. Pode-se adicionar privilégios com GRANT, mas a palavra-chave é GRANT, não ADD.

Alternativa E — ❌ Incorreta

GRANT ADD Pedro TO programador; – Mistura GRANT com ADD de forma incorreta. A sintaxe correta é GRANT role TO user; o ADD não faz parte do comando.

NÃO CAIA NESSA!

A banca confunde o candidato inserindo palavras como ASSIGN, BIND, ADD, que não pertencem à sintaxe do GRANT para roles. Lembre-se: a estrutura básica é sempre GRANT <privilege/role> TO <user/role>, sem ON quando se trata de roles.

Gabarito: letra B.

Link permanente: /questoes/fc037992