🎃

FATAL: password authentication failed for user "○○"が出た(ロール/ユーザー作成)

2024/10/30に公開

psqlコマンドでPostgreSQLにログインして新しいユーザーを作成する方法

はじめに

この記事では、psqlコマンドを使ってPostgreSQLデータベースにログインし、新しいユーザーを作成する方法について説明します。さらに、作成したユーザーに権限を付与する手順も紹介します。

1. psqlコマンドでPostgreSQLにログインする

まず、ターミナルからPostgreSQLデータベースにログインするために、以下のpsqlコマンドを使用します。

psql -h <ホストのIPアドレス> -p <ポート番号> -U <ユーザー名> -d <データベース名>

• <ホストのIPアドレス>にはデータベースサーバーのIPアドレスを入力します。
• <ポート番号>には接続するポート番号(通常は5432)を入力します。
• <ユーザー名>にはログイン可能なPostgreSQLユーザー名を指定します(例: postgres)。
• <データベース名>には接続したいデータベース名を指定します。

パスワードを入力すると、以下のようなプロンプトが表示されます。

common=>

2. 新しいユーザーを作成する

ログインしたら、以下のSQLコマンドを使って新しいユーザーを作成します。

CREATE ROLE <追加したいユーザー名> WITH LOGIN PASSWORD '<設定したいパスワード>';

• <追加したいユーザー名>には作成したいユーザー名を入力します。
• <設定したいパスワード>には設定したいパスワードを入力します。

作成例:

CREATE ROLE test_user WITH LOGIN PASSWORD 'securepassword';

3. 権限を付与する

ユーザーを作成した後、そのユーザーに必要な権限を付与します。以下にいくつかの権限付与の例を紹介します。
• データベースへの接続権限を付与する:

GRANT CONNECT ON DATABASE <データベース名> TO <追加したいユーザー名>;

• データベース全体に対して全権限を付与する:

GRANT ALL PRIVILEGES ON DATABASE <データベース名> TO <追加したいユーザー名>;

• スキーマに対して使用権限と全権限を付与する:

GRANT USAGE ON SCHEMA <スキーマ名> TO <追加したいユーザー名>;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA <スキーマ名> TO <追加したいユーザー名>;

4. すでにロールは存在する場合

まずはロール一覧確認コマンド

\du

ここでロールが存在すれば、パスワードを再設定する。

ALTER ROLE <ユーザー名> WITH PASSWORD '<パスワード>';

終わりに・・

今回DBサーバーを変更してプログラムを実行しようとした時に、ユーザーが見つからないというエラーが出て、以前登録したことはあったものの、方法を忘れてしまったため、アウトプットのために記事を作成しました。
これからも少しずつインプットしたものをここでアウトプットさせていただきます。終わり!

Discussion