Versões anteriores do Postgres e alguns outros sistemas de banco de dados têm conceitos separados de "grupos" (que recebem acesso a objetos de banco de dados) e "usuários" (que podem fazer login e são membros de um ou mais grupos).
Nas versões modernas do Postgres, os dois conceitos foram mesclados:uma "função" pode ter a capacidade de fazer login, a capacidade de "herdar" de outras funções (como um usuário ser membro de um grupo ou um grupo ser membro de outro grupo) e acesso a objetos de banco de dados.
Por conveniência, muitas ferramentas e manuais referem-se a qualquer usuário com permissão de login como "usuário" ou "função de login", e qualquer outro sem permissão como "grupo" ou "função de grupo", pois é uma prática útil e comum manter aproximadamente aquela estrutura. Isso é inteiramente uma convenção de terminologia e, para entender as permissões, você só precisa entender as opções disponíveis quando criando funções e concedendo acesso .
Novamente por conveniência, o Postgres ainda aceita comandos usando a terminologia antiga, como
CREATE USER
e CREATE GROUP
que são aliases para CREATE ROLE
. Se você escrever CREATE USER
, o LOGIN
permissão será adicionada à nova função por padrão, para emular o comportamento antigo quando esse era um comando separado.