Разница между командами CREATE USER и CREATE ROLE в PostgreSQL заключается в том, для создания каких ролей они используются. 12
CREATE ROLE обычно применяют, когда нужно создать роль без возможности входа в систему. 1 Такая роль не сможет подключаться к серверу PostgreSQL и выполнять операции в базе данных (добавлять, изменять и удалять данные). 1 Например, с помощью CREATE ROLE создают пользователя с правами Read Only (только для чтения). 12
CREATE USER, в свою очередь, используют для создания роли с возможностью входа в систему. 1 Такой пользователь сможет подключаться к серверу PostgreSQL и выполнять различные операции в базе данных. 1
Таким образом, команда CREATE USER фактически синонимична команде CREATE ROLE с опцией LOGIN. 1 То есть команды CREATE USER readonlyuser и CREATE ROLE readonlyuser WITH LOGIN равнозначны. 1