でユーザーを作成する方法 PostgreSQL PgAdminを使用する

⚡ スマートサマリー

ユーザーの作成 PostgreSQL pgAdminで視覚的に操作するか、SQLシェルでCREATE USERコマンドを使用して操作できます。その後、GRANTコマンドで権限を付与したり、ALTER USERコマンドでロールを変更したり、DROP USERコマンドでアカウントを削除したりできます。

  • 🖱️ pgAdminで作成: ログイン/グループロールを右クリックし、名前を入力し、パスワードと権限を設定して保存すると、ユーザーが作成されます。
  • 💻 ユーザー作成コマンド: SQLシェルでは、CREATE USER name WITH optionsコマンドを使用すると、ログイン名、スーパーユーザー名、パスワードを1つのコマンドで設定できます。
  • 🔑 アクセスを許可: GRANT ALL PRIVILEGES ON DATABASE db TO user は、既存のユーザーにデータベースへのアクセス権を与えます。
  • 🔧 ユーザーの変更: ALTER USER は、ロールの権限を調整し、SUPERUSER などの権限を追加または取り消します。
  • 🗑️ ユーザーを削除: DROP USER コマンドはアカウントを削除しますが、削除されるのは、そのアカウントがデータベースオブジェクトを一切所有しなくなった後のみです。
  • 🧾 役割とユーザー: CREATE USER のデフォルト値は LOGIN ですが、CREATE ROLE のデフォルト値は NOLOGIN です。それ以外は同じです。

でユーザーを作成する方法 PostgreSQL PgAdminを使用する

作り方 PostgreSQL PgAdmin のユーザー

以下は、ユーザーを作成する手順です。 PostgreSQL PgAdmin:

ステップ1) 「ログイン」を右クリックします

最初のステップでは、[ログイン グループ ロール] を右クリック -> [作成] -> [ログイン グループ ロール…] をクリックします。

創造する PostgreSQL PgAdmin のユーザー

ステップ2) ログイン/グループロールの作成

次に、ログインの名前を入力します。

創造する PostgreSQL PgAdmin のユーザー

ステップ3) 定義をクリックして詳細を入力

  1. パスワードを入力します
  2. アカウントの有効期限

創造する PostgreSQL PgAdmin のユーザー

ステップ4) 特権セクション

  1. Toggle ログインボタンをYESにします
  2. Toggle スーパーユーザーは「YES」

創造する PostgreSQL PgAdmin のユーザー

ステップ5) その SQL

  1. 前の手順で行った選択に従ってユーザーを作成するための SQL クエリが表示されます。
  2. [保存]ボタンをクリックします

創造する PostgreSQL PgAdmin のユーザー

ステップ6) ロールが作成されました

これで、オブジェクトツリーにRoleが反映されました。

創造する PostgreSQL PgAdmin のユーザー

ステップ7) 作る データベース

ここで、以下のユーザー Postgres の作成例に示すように、所有者 myguru をそれに割り当てます。

創造する PostgreSQL PgAdmin のユーザー

ステップ8) コマンドライン

これで、オーナーが myguru であることがわかります。

創造する PostgreSQL PgAdmin のユーザー

PostgreSQL ユーザー SQLShell の作成 (コマンド ライン)

コマンドラインコマンドを使用してユーザーを作成できます。

ユーザーを作成

この Postgres のパスワード付きユーザー作成方法は、プログラマーや管理者がコンソールにアクセスできるため、より便利です。 PostgreSQL サーバ。さらに、Postgres ユーザーを作成し、ログインしてインターフェイスを使用する代わりに、単一のコマンドで実行する必要があります。 PostgreSQL クライアント。

構文:

CREATE USER name [ WITH ] option [ ... ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid

例:

CREATE USER tom;

ユーザートムを作成します

CREATE USER tom WITH SUPERUSER;

スーパーユーザー権限を持つユーザー「tom」を作成します。次の例を見てみましょう。

ステップ1) 3 まで有効なスーパーユーザーを作成していますrd 2025年4月11時50分38秒(インド標準時)。以下のコマンドを入力してください。

CREATE USER mytest WITH
	LOGIN
	SUPERUSER
	CREATEDB
	CREATEROLE
	INHERIT
	NOREPLICATION
	CONNECTION LIMIT -1
	VALID UNTIL '2025-04-03T11:50:38+05:30'
	PASSWORD '123456';

ユーザーSQLShellの作成

ステップ2) ユーザーのチェックリストにコマンド \du を入力します

ユーザーSQLShellの作成

注: CREATE USERコマンドはCREATE ROLEコマンドと同じです。両者の違いは、PostgreSQLのCREATE USERコマンドではデフォルトでログイン状態であるのに対し、CREATE ROLEオプションではNOLOGIN状態が想定される点です。

既存のユーザーをデータベースに追加する

ユーザーにデータベースにアクセスする権限を付与できます。

たとえば、ユーザー「mytest」にユーザー guru99 に対するすべての権限を付与します。

GRANT ALL PRIVILEGES ON DATABASE guru99 TO mytest;

既存のユーザーをデータベースに追加する

の実行後、 PostgreSQL add user コマンドを実行すると、ユーザーは指定された権限でデータベースにアクセスできるようになります。

コマンド GRANT は非常に強力です。 選択、挿入、更新などの詳細な権限をユーザーに与えることができます。

PostgreSQL ユーザーを更新しています

既存のユーザー権限の変更

新しいユーザー「mytest」が存在したので、ALTER USER を使用してライブラリアンに付与された権限を変更できます。

ALTER USER Postgres の形式には、ユーザーの名前と、それに続くいくつかのオプションが含まれます。 PostgreSQL どのような許容的な変更を行うか:

ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

Rev権限の確認

このコマンドは、間違って割り当てた権限を取り消したい場合に使用する必要があります。 ALTER USER コマンドは、許可オプションの前にプレフィックスを付けずに使用できます。

たとえば、次のように mytest から SUPERUSER ステータスを削除できます。

ALTER USER mytest WITH NOSUPERUSER;

\du を使用すると、スーパーユーザー権限が削除されることがわかります。

Rev権限の確認

権限の割り当て

次のコマンドを使用して、ユーザーSUPERUSER権限を「mytest」に戻すことができます。

ALTER USER mytest WITH SUPERUSER;

\du を使用すると、スーパーユーザー権限が追加されることがわかります。

権限の割り当て

PostgreSQL ユーザーの削除

特定のユーザーがデータベースに存在しないことが確実な場合は、「任意のユーザーを削除」を使用できます。 ユーザーを削除しても実際のデータベースには影響しないことに注意してください。

Syntax: DROP USER [user]

ユーザーを削除するには、そのユーザーがデータベースの所有者であることを確認する必要があります。そうでない場合、エラー メッセージが表示されることがあります。

ERROR:  role "username" cannot be dropped because some objects depend on it

例:

  1. アカウント「myguru」はデータベース「demoDB」の所有者です。
  2. コマンド DROP USER myguru を入力してください
  3. エラーが表示される

PostgreSQL ユーザーの削除

データベース所有者を変更すると、ユーザーは削除できます

PostgreSQL ユーザーの削除

チートシート

重要なコマンドは次のとおりです

コマンド 詳細説明
CREATE USER [user]
ユーザーを作成するコマンド
ALTER USER role_specification
既存のユーザー権限の変更
ALTER USER [user]
Rev権限の確認
ALTER USER [user name] WITH SUPERUSER
権限の割り当て
DROP USER [user]
ユーザーを削除するコマンド

よくあるご質問

psqlシェルで、\duコマンドを実行すると、すべてのロールとその属性を一覧表示できます。また、SELECT rolname FROM pg_rolesコマンドを使用してシステムカタログをクエリすることで、同じ情報をプログラムで取得することもできます。

ALTER USER コマンドを使用してください。例えば、ALTER USER mytest WITH PASSWORD 'newpassword' のように入力します。変更は即座に反映されます。パスワードは暗号化されて保存されるため、スーパーユーザーまたはユーザー本人のみが変更できます。

In PostgreSQLユーザーとロールは同じオブジェクトです。CREATE USER はデフォルトでログインできるロールを作成しますが、CREATE ROLE は LOGIN 属性を追加しない限りログインできないロールを作成します。

AIは、必要なアクセス権限を簡潔に記述するだけで、CREATE USER、GRANT、ALTER USERステートメントを生成し、それぞれの権限について説明できます。これにより、構文を暗記することなく、最小権限のセキュリティを適用できます。

はい。AIは、必要な権限のみを付与するきめ細かなGRANTコマンドを提案したり、広範なスーパーユーザーアクセス権限の付与に対して警告を発したり、権限をグループ化してより簡単かつ安全に管理するためにロールを使用することを推奨したりできます。