【PostgreSQL】CREATE USERとCREATE ROLEの違い

PostgreSQLその他

ユーザーとロールの違い

まず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の唯一の違いとなっています。

(全く同じものなことが逆に混乱する原因な気がしますが、そこんとこどうなんでしょうね)