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
ACREATE PERMISSION create table, create view TO Paulo;
BCREATE GRANT table, view TO Paulo;
CGRANT create table, create view TO Paulo;
DCREATE ROLE create table, create view TO Paulo;
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.