Основное отличие команд CREATE USER и CREATE ROLE в PostgreSQL заключается в том, что в первом случае по умолчанию определяется имя с возможностью соединения (параметр LOGIN), а во втором — соединение запрещено (параметр NOLOGIN). 1
Команда CREATE ROLE используется для создания роли без возможности входа в систему. 2 Это означает, что созданная роль не сможет подключаться к серверу PostgreSQL и выполнять операции в базе данных (добавлять, изменять и удалять данные). 2
Команда CREATE USER, с другой стороны, используется для создания роли с возможностью входа в систему. 2 Это означает, что созданный пользователь сможет подключаться к серверу PostgreSQL и выполнять различные операции в базе данных. 2
Таким образом, команда CREATE USER фактически синонимична команде CREATE ROLE с опцией LOGIN. 2