Privilégio USAGE em esquema PostgreSQL
Gabarito: letra A. O comando GRANT USAGE ON SCHEMA objeto1 TO objeto2; concede o privilégio USAGE sobre o esquema objeto1 para a role objeto2. Esse privilégio permite que a role acesse e procure objetos (tabelas, funções, etc.) contidos no esquema, sem poder criar, alterar ou ler diretamente o catálogo do sistema. A documentação do PostgreSQL define que USAGE dá o direito de "usar" o esquema, ou seja, de acessar os objetos dentro dele, mas não de modificá-los.
Alternativa A — ✅ Correta ⟵ GABARITO
Concede exatamente o que o privilégio USAGE proporciona: procurar e acessar objetos contidos no esquema. O grantee pode, por exemplo, executar SELECT em tabelas do esquema (se tiver também o privilégio SELECT na tabela) ou chamar funções. É o significado padrão de USAGE no PostgreSQL.
Alternativa B — ❌ Incorreta
"Utilizar as funções currval e nextval" são funções de sequência. Embora essas funções estejam em um esquema (normalmente pg_catalog), o privilégio USAGE no esquema não concede especificamente o direito de usá-las; é necessário também possuir o privilégio de EXECUTE na função ou ser o proprietário. A alternativa confunde a permissão genérica de acessar objetos com uma permissão específica sobre funções.
Alternativa C — ❌ Incorreta
"Criar funções em esquemas de uma determinada linguagem" exige o privilégio CREATE no esquema e o privilégio USAGE na linguagem (se aplicável). USAGE não permite criar objetos; é uma permissão de acesso, não de criação.
Alternativa D — ❌ Incorreta
"Definir tipos e domínios na criação de esquemas de tabelas" também demanda o privilégio CREATE no esquema. USAGE não autoriza a definição de novos objetos.
Alternativa E — ❌ Incorreta
"Ler os nomes dos objetos do esquema no catálogo do sistema" requer o privilégio SELECT nas tabelas do catálogo (pg_class, pg_namespace, etc.), não USAGE. O USAGE permite usar o esquema, mas não visualizar sua definição diretamente.
Gabarito: letra A — apenas a alternativa A descreve corretamente a consequência do privilégio USAGE sobre um esquema no PostgreSQL.