Open1

【PostgreSQL】CREATE ROLEとCREATE USERとの違い

ヒガシヒガシ

PostgreSQL16系であることが前提。
CREATE ROLEとCREATE USERとには以下の違いがある。

  • CREATE ROLE: デフォルトでLOGINオプションが無効
  • CREATE USER: デフォルトでLOGINオプションが有効

どちらを使うのが望ましいかと言うと、CREATE ROLEを使うことが望ましい。
理由は最小権限の原則と、PostgreSQLの文書で「CREATE USERはCREATE ROLEの別名である」と明記されているためである。

CREATE ROLEの方が後発で、PostgreSQL8.1で追加された。8.1前後のドキュメントを見比べるとわかりやすい。