【PostgreSQL】CREATE USERとCREATE ROLEの違い
ユーザーとロールの違い
まずPostgreSQLでは、ユーザーとロールの概念はありますが、
内部的には全く同じものとして実装されています。
※ 標準的なSQLでは、ユーザーはその名の通りユーザー、ロールは権限の集まりのような位置づけで、
ユーザーには権限を個別に付与したり、ロールでまとめて付与したりすることが可能
CREATE USERとCREATE ROLEの違い
では、本題の「CREATE USERとCREATE ROLEの違い」についてですが、違いは1点だけです。
CREATE USERとCREATE ROLEですが、
内部的にはCREATE USERを実行するとCREATE ROLEを呼び出すようになっています。
しかしCREATE ROLE実行時の「LOGIN」オプションの値が、
CREATE USERの場合、LOGIN(ログイン可能)、
CREATE ROLEの場合、NOLOGIN(ログイン不可)になっている違いがあります。
これがCREATE USERとCREATE ROLEの唯一の違いとなっています。
(全く同じものなことが逆に混乱する原因な気がしますが、そこんとこどうなんでしょうね)