GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04にPostgreSQLをインストールする方法

PostgreSQLまたはPostgresは、フォールトトレラントな環境や複雑なアプリケーションを構築できる多くの高度な機能を備えたオープンソースの汎用オブジェクトリレーショナルデータベース管理システムです。

このガイドでは、PostgreSQLデータベースサーバーをUbuntu 20.04にインストールする方法を説明し、PostgreSQLデータベース管理の基本を探ります。

前提条件#

パッケージをインストールするには、rootまたはsudo権限を持つユーザーとしてログインする必要があります。

UbuntuにPostgreSQLをインストールする#

この記事を書いている時点で、公式のUbuntuリポジトリから入手できるPostgreSQLの最新バージョンはPostgreSQLバージョン10.4です。

次のコマンドを実行して、PostgreSQLサーバーをUbuntuにインストールします。

sudo apt updatesudo apt install postgresql postgresql-contrib

また、PostgreSQLデータベースシステムにいくつかの追加機能を提供するPostgreSQLcontribパッケージもインストールしています。

インストールが完了すると、PostgreSQLサービスが自動的に開始されます。 psqlを使用します PostgreSQLデータベースサーバーに接続してそのバージョンを印刷することにより、インストールを確認するためのツール:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 12.2 (Ubuntu 12.2-4) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-8ubuntu1) 9.3.0, 64-bit

それでおしまい。 PostgreSQLがインストールされており、使用を開始できます。

PostgreSQLの役割と認証方法#

PostgreSQL内のデータベースアクセス許可は、ロールの概念で処理されます。ロールは、データベースユーザーまたはデータベースユーザーのグループを表すことができます。

PostgreSQLは複数の認証方法をサポートしています。最も一般的に使用される方法は次のとおりです。

  • 信頼-pg_hba.confで定義されている条件である限り、ロールはパスワードなしで接続できます。 満たされています。
  • パスワード-役割はパスワードを提供することで接続できます。パスワードはscram-sha-256として保存できます 、md5 、およびpassword (クリアテキスト)。
  • Ident-TCP/IP接続でのみサポートされます。これは、オプションのユーザー名マッピングを使用して、クライアントのオペレーティングシステムのユーザー名を取得することで機能します。
  • ピア-Identと同じですが、ローカル接続でのみサポートされます。

PostgreSQLクライアント認証は、pg_hba.confという名前の構成ファイルで定義されています。 。デフォルトでは、PostgreSQLはローカル接続にピア認証方式を使用しています。

postgres PostgreSQLをインストールすると、ユーザーが自動的に作成されます。このユーザーはPostgreSQLインスタンスのスーパーユーザーであり、MySQLルートユーザーと同等です。

postgresとしてPostgreSQLサーバーにログインするには ユーザー、最初にユーザーに切り替えてから、psqlを使用してPostgreSQLプロンプトにアクセスします ユーティリティ:

sudo su - postgrespsql

ここから、PostgreSQLインスタンスを操作できます。 PostgreSQLシェルタイプを終了するには:

\q

ユーザーを切り替えずにPostgreSQLプロンプトにアクセスする別の方法は、sudoを使用することです。 コマンド:

sudo -u postgres psql

通常、データベースサーバーにはpostgresとしてログインする必要があります ローカルホストからのみ。

PostgreSQLの役割とデータベースの作成#

CREATEROLEを持つスーパーユーザーとロールのみ 特権は新しい役割を作成できます。

次の例は、johnという名前の新しいロールを作成する方法を示しています。 johndbという名前のデータベース データベースに対する特権を付与します:

  1. 新しいPostgreSQLロールを作成します:

    sudo su - postgres -c "createuser john"
  2. 新しいPostgreSQLデータベースを作成します:

    sudo su - postgres -c "createdb johndb"

データベース上のユーザーに権限を付与するには、PostgreSQLシェルに接続します。

sudo -u postgres psql

次のクエリを実行します:

GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

PostgreSQLサーバーへのリモートアクセスを有効にする#

デフォルトでは、PostgreSQLサーバーはローカルインターフェース(127.0.0.1)でのみリッスンします 。

PostgreSQLサーバーへのリモートアクセスを有効にするには、構成ファイルpostgresql.confを開きます。 listen_addresses = '*'を追加します CONNECTIONS AND AUTHENTICATION セクション。

sudo nano /etc/postgresql/12/main/postgresql.conf
/etc/postgresql/12/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

ファイルを保存してPostgreSQLサービスを再起動します:

sudo service postgresql restart

ssで変更を確認します ユーティリティ:

ss -nlt | grep 5432

出力は、PostgreSQLサーバーがすべてのインターフェース(0.0.0.0)をリッスンしていることを示しています。 ):

LISTEN  0        244              0.0.0.0:5432           0.0.0.0:*              
LISTEN  0        244                 [::]:5432              [::]:* 

次のステップは、pg_hba.confを編集して、リモート接続を受け入れるようにサーバーを構成することです。 ファイル。

以下は、さまざまなユースケースを示すいくつかの例です。

/etc/postgresql/12/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb from all locations using md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

最後のステップは、ポート5432を開くことです。 ファイアウォールで。

UFWを使用していると仮定します ファイアウォールを管理し、192.168.1.0/24からのアクセスを許可したい サブネットの場合、次のコマンドを実行します:

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

信頼できるIP範囲からの接続のみを受け入れるようにファイアウォールが構成されていることを確認してください。


Ubuntu
  1. Ubuntu18.04にPostgreSQLをインストールする方法

  2. Ubuntu18.04にPostgreSQLをインストールする方法

  3. UbuntuにPostgreSQL9.5をインストールする方法(12.04-15.10)

  1. UbuntuにpgAdmin4をインストールする方法

  2. Ubuntu20.04にPostgreSQLをインストールします

  3. Ubuntu20.04にOpenMAINTをインストールする方法

  1. Ubuntu20.04にPiwigoをインストールする方法

  2. Ubuntu20.04にTimescaleDBをインストールする方法

  3. Ubuntu20.04にPostgreSQL14をインストールする方法