Pular para o conteúdo principal

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

Banco de DadosOracle
Código
fc034333
Banca
FCC
Órgão
TRT - 23ª REGIÃO (MT)
Ano
2016
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação
Após um DBA criar um usuário executando a instrução CREATE USER Paulo IDENTIFIED BY abcd;, o usuário Paulo ainda não tem nenhum privilégio. Para conceder a ele o privilégio de sistema para criar tabelas e views o DBA deve digitar no Oracle 11g, a instrução
  1. ACREATE PERMISSION create table, create view TO Paulo;
  2. BCREATE GRANT table, view TO Paulo;
  3. CGRANT create table, create view TO Paulo;
  4. DCREATE ROLE create table, create view TO Paulo;
  5. EGRANT OPTION create table AND create view TO Paulo;
Revelar gabarito e comentário

GabaritoC — GRANT create table, create view TO Paulo;

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 11g: Concessão de Privilégios de Sistema (GRANT)

Gabarito: letra C. O comando correto para conceder privilégios de sistema (como CREATE TABLE e CREATE VIEW) a um usuário no Oracle 11g é GRANT create table, create view TO Paulo;. A instrução GRANT é o comando DCL (Data Control Language) responsável por atribuir privilégios a usuários ou papéis, e a sintaxe para privilégios de sistema dispensa a cláusula ON (usada apenas para privilégios de objetos).

A questão testa o conhecimento dos comandos de controle de acesso do SQL no Oracle 11g. A banca espera que o candidato saiba que:

  • GRANT é o comando correto para conceder privilégios.

  • Para privilégios de sistema, a sintaxe é: GRANT <lista de privilégios> TO <usuário>.

  • Para privilégios de objeto, usa-se a cláusula ON.

A tabela a seguir resume a sintaxe básica:

Tipo de Privilégio

Sintaxe

Exemplo

Sistema

GRANT priv1, priv2 TO user;

GRANT CREATE TABLE TO Paulo;

Objeto (tabela, view)

GRANT priv ON objeto TO user;

GRANT SELECT ON tab1 TO Paulo;

Alternativa A — ❌ Incorreta

A alternativa sugere CREATE PERMISSION create table, create view TO Paulo;. Esse comando não existe no Oracle SQL. O comando CREATE é usado para criar objetos (tabelas, usuários, papéis), não para conceder permissões.

Alternativa B — ❌ Incorreta

CREATE GRANT table, view TO Paulo; também é inválido. Não há o comando CREATE GRANT. A concessão de privilégios é feita exclusivamente pelo comando GRANT.

Alternativa C — ✅ Correta

GRANT create table, create view TO Paulo; é a sintaxe correta. A palavra GRANT é seguida da lista de privilégios de sistema separados por vírgula, e depois a cláusula TO com o destinatário. Como são privilégios de sistema, não há cláusula ON.

Alternativa D — ❌ Incorreta

CREATE ROLE create table, create view TO Paulo; cria um papel (role) com o nome create table, create view TO Paulo, mas não concede privilégios ao usuário Paulo. Para usar um papel, seria necessário conceder o papel ao usuário com GRANT role TO Paulo;.

Alternativa E — ❌ Incorreta

GRANT OPTION create table AND create view TO Paulo; usa OPTION de forma incorreta. A cláusula WITH GRANT OPTION é usada no final do comando para permitir que o usuário repasse os privilégios, mas não substitui a palavra GRANT. Além disso, a conjunção AND não é usada para separar privilégios; deve-se usar vírgula.

PEGA ESSA DICA!

Memorize os comandos DCL: GRANT (conceder) e REVOKE (revogar). Para privilégios de sistema, a sintaxe é direta: GRANT privilégio TO usuário. Já para privilégios de objeto, inclui-se a cláusula ON objeto. Questões de concurso frequentemente trocam os comandos ou incluem palavras inventadas como CREATE PERMISSION — fique atento.

Gabarito: letra C

Link permanente: /questoes/fc034333