Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — Quadrix 2023

Banco de DadosPostgreSQL
Código
qg029812
Banca
Quadrix
Órgão
CRQ 4ª Região-SP
Ano
2023
Nível
Superior
Cargo
Profissionais de Atividade de Suporte - Analista de Sistemas (Programação)
Imagem da questão
A respeito dos sistemas gerenciadores de bancos de dados (SGBD) Oracle 11g e PostgreSQL 9.2, julgue o item.No PostgreSQL 9.2, para criar um usuário deve‑se utilizar o comando GRANT.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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”.

PostgreSQL: criação de usuário e o comando GRANT

Gabarito: ERRADO (letra E). No PostgreSQL 9.2, o comando correto para criar um usuário é CREATE USER (ou CREATE ROLE), e não GRANT. O GRANT é um comando da sublinguagem DCL (Data Control Language) utilizado para conceder privilégios a usuários e papéis já existentes, não para criá-los. A afirmação do enunciado confunde a função de criação de usuário com a de concessão de privilégios.

O PostgreSQL é um sistema gerenciador de banco de dados objeto-relacional de código aberto, que segue o padrão SQL. Dentro desse padrão, a linguagem SQL é dividida em sublinguagens, cada uma com responsabilidades específicas. A DDL (Data Definition Language) é responsável pela definição da estrutura do banco (CREATE, ALTER, DROP), enquanto a DCL (Data Control Language) é responsável pelo controle de acesso e permissões, sendo seus principais comandos o GRANT e o REVOKE. A criação de um usuário é uma operação de definição, portanto pertence à DDL, e não à DCL.

Para criar um usuário no PostgreSQL, utiliza-se o comando CREATE USER, que é um atalho para CREATE ROLE ... WITH LOGIN. A sintaxe básica é CREATE USER nome_usuario WITH PASSWORD 'senha';. Já o comando GRANT é usado para conceder privilégios específicos sobre objetos do banco (como tabelas, views, sequences) a um usuário ou papel. Por exemplo, GRANT SELECT ON tabela TO usuario; concede o privilégio de consulta sobre a tabela ao usuário. A confusão entre esses dois comandos é uma pegadinha clássica em provas de banco de dados.

A banca explora exatamente essa distinção: o candidato que sabe que GRANT é usado para "dar" algo pode ser induzido a pensar que ele também "cria" usuários. No entanto, a função do GRANT é exclusivamente a de atribuir privilégios a entidades (usuários ou papéis) que já foram criadas. A criação de usuários é feita com CREATE USER ou CREATE ROLE. Portanto, a afirmação de que "para criar um usuário deve-se utilizar o comando GRANT" está incorreta.

NÃO CAIA NESSA!

A banca troca a função do comando GRANT. Ela quer que você confunda "conceder privilégios" com "criar usuário". Lembre-se: GRANT dá permissões a quem já existe; CREATE USER/CREATE ROLE cria a entidade. Essa inversão de papéis é o coração da questão.

Comandos SQL
  • 1DDL (definição de estrutura)
    • CREATE USER
    • CREATE ROLE
    • ALTER
    • DROP
  • 2DCL (controle de acesso)
    • GRANT (concede privilégios)
    • REVOKE (revoga privilégios)
LEVEL · soulevel.com.br

Item — ❌ ERRADO

A afirmação "No PostgreSQL 9.2, para criar um usuário deve-se utilizar o comando GRANT" é incorreta. O comando GRANT é um comando da DCL (Data Control Language) utilizado para conceder privilégios de acesso a usuários e papéis já existentes no banco de dados. Para criar um usuário, o comando correto é CREATE USER (ou CREATE ROLE). A criação de usuário é uma operação de definição de estrutura, pertencente à DDL (Data Definition Language), enquanto o GRANT é uma operação de controle de acesso, pertencente à DCL. Portanto, a assertiva está errada.

Gabarito: ERRADO (letra E).

Link permanente: /questoes/qg029812