3.3. PostgreSQL ユーザーの作成


PostgreSQL ユーザーは以下のタイプのものです。

  • postgres Linux システムユーザー: PostgreSQL サーバーおよびクライアントアプリケーション (pg_dump など) を実行するためにのみ使用します。データベース作成およびユーザー管理などの、PostgreSQL 管理上の対話的な作業には postgres システムユーザーを使用しないでください。
  • データベースのスーパーユーザー: デフォルトの postgres PostgreSQL スーパーユーザーは、postgres システムユーザーとは関係ありません。/var/lib/pgsql/data/pg_hba.conf ファイルで postgres スーパーユーザーのアクセスを制限できます。それ以外の場合、他のパーミッションの制限はありません。他のデータベースのスーパーユーザーを作成することもできます。
  • 特定のデータベースアクセスパーミッションを持つロール:

    • データベースユーザー: デフォルトでログインするパーミッションがあります。
    • ユーザーのグループ: グループ全体のパーミッションを管理できるようにします。

ロールはデータベースオブジェクト (テーブルや関数など) を所有でき、SQL コマンドを使用して他のロールにオブジェクト特権を割り当てることができます。

標準のデータベース管理権限には SELECTINSERTUPDATEDELETETRUNCATEREFERENCESTRIGGERCREATECONNECTTEMPORARYEXECUTE、および USAGE が含まれます。

ロール属性は、LOGINSUPERUSERCREATEDB、および CREATEROLE などの特別な権限です。

重要

ほとんどのタスクをスーパーユーザー以外のロールとして実行します。一般的な方法として、CREATEDB および CREATEROLE の権限を持つロールを作成し、このロールをデータベースおよびロールのすべてのルーチン管理に使用します。

前提条件

  • PostgreSQL サーバーがインストールされている。
  • データベースクラスターが初期化されている。
  • /var/lib/pgsql/data/postgresql.conf ファイルの password_encryption パラメーターが scram-sha-256 に設定されている。
  • /var/lib/pgsql/data/pg_hba.conf ファイル内のエントリーが、認証方法として scram-sha-256 ハッシュアルゴリズムを使用している。

手順

  1. postgres システムユーザーとしてログインするか、このユーザーに切り替えます。

    # su - postgres
    Copy to Clipboard Toggle word wrap
  2. PostgreSQL インタラクティブターミナルを起動します。

    $ psql
    psql (16.4)
    Type "help" for help.
    
    postgres=#
    Copy to Clipboard Toggle word wrap
  3. オプション: 現在のデータベース接続に関する情報を取得します。

    postgres=# \conninfo
    You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
    Copy to Clipboard Toggle word wrap
  4. mydbuser という名前のユーザーを作成し、パスワードを設定して、そのユーザーに CREATEROLE および CREATEDB パーミッションを割り当てます。

    postgres=# CREATE USER mydbuser WITH PASSWORD '<password>' CREATEROLE CREATEDB;
    CREATE ROLE
    Copy to Clipboard Toggle word wrap

    これで、mydbuser ユーザーは、日常的なデータベース管理操作 (データベースの作成とユーザーインデックスの管理) を実行できるようになりました。

  5. \q メタコマンドを使用して、インタラクティブターミナルからログアウトします。

    postgres=# \q
    Copy to Clipboard Toggle word wrap

検証

  1. mydbuser として PostgreSQL ターミナルにログインし、ホスト名を指定して、初期化中に作成されたデフォルトの postgres データベースに接続します。

    # psql -U mydbuser -h 127.0.0.1 -d postgres
    Password for user mydbuser:
    Type the password.
    psql (16.4)
    Type "help" for help.
    
    postgres=>
    Copy to Clipboard Toggle word wrap
  2. データベースを作成します。

    postgres=> CREATE DATABASE <db_name>;
    Copy to Clipboard Toggle word wrap
  3. セッションからログアウトします。

    postgres=# \q
    Copy to Clipboard Toggle word wrap
  4. mydbuser として新しいデータベースに接続します。

    # psql -U mydbuser -h 127.0.0.1 -d <db_name>
    Password for user mydbuser:
    psql (16.4)
    Type "help" for help.
    mydatabase=>
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat