PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Qual é a diferença entre um usuário e uma função?


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.