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
AASSIGN programador TO Pedro WITH GRANT OPTION;
BGRANT programador TO Pedro;
CBIND Pedro TO programador;
DADD Pedro TO programador;
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.