アンドロイド

ubuntu 18.04にpostgresqlをインストールする方法

Ubuntu 18.04: What's New?

Ubuntu 18.04: What's New?

目次:

Anonim

PostgreSQLまたはPostgresは、オープンソースの汎用オブジェクトリレーショナルデータベース管理システムです。 PostgreSQLには、複雑なWebアプリケーションを作成できる多くの高度な機能があります。

このチュートリアルでは、Ubuntu 18.04にPostgreSQLをインストールする方法を示し、基本的なデータベース管理の基礎を探ります。

前提条件

このチュートリアルを続ける前に、sudo特権を持つユーザーとしてログインしていることを確認してください。

Ubuntuの上でPostgreSQLをインストール

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

UbuntuサーバーにPostgreSQLをインストールするには、次の手順に従います。

  1. PostgreSQLのインストール

    ローカルパッケージインデックスを更新し、PostgreSQLデータベースにいくつかの追加機能を提供するPostgreSQL contribパッケージとともにPostgreSQLサーバーをインストールします。

    sudo apt update sudo apt install postgresql postgresql-contrib

    確認PostgreSQLのインストール

    インストールが完了すると、PostgreSQLサービスが自動的に開始されます。

    インストールを確認するために、 psql を使用してPostgreSQLデータベースサーバーに接続し、サーバーバージョンを出力します。

    sudo -u postgres psql -c "SELECT version();"

psqlは、PostgreSQLサーバーと対話できる対話型のコマンドラインユーティリティです。

PostgreSQLのロールと認証方法

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

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

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

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

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

PostgreSQLサーバーにpostgresユーザーとしてログインするには、まずユーザーpostgresに切り替える必要があります。その後、 psql ユーティリティを使用してPostgreSQLプロンプトにアクセスできます。

sudo su - postgres psql

ここからは、あなたのPostgreSQLインスタンスと対話することができます。 PostgreSQLシェルを終了するには、次のように入力します。

\q

sudo コマンドを使用して、ユーザーを切り替えずにPostgreSQLプロンプトにアクセスすることもできます。

sudo -u postgres psql

通常、 postgres ユーザーはローカルホストからのみ使用され、このユーザーのパスワードを設定しないことをお勧めします。

PostgreSQLロールとデータベースの作成

あなたは使用してコマンドラインから新しい役割を作成することができ createuser コマンドを。 CREATEROLE 特権を CREATEROLE スーパーユーザーとロールのみが新しいロールを作成できます。

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

  1. 新しいPostgreSQLの役割を作成します。

    次のコマンドは、ジョンという名前の新しいロールを作成します。

    sudo su - postgres -c "createuser john"

    新しいPostgreSQLデータベースを作成します。

    使用johndbという名前の新しいデータベースを作成 createdb コマンドを:

    sudo su - postgres -c "createdb johndb"

    権限の付与

    前の手順で作成したデータベースの john ユーザーにアクセス許可を付与するには、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 セクションに listen_addresses = '*' を追加します。

sudo vim /etc/postgresql/10/main/postgresql.conf /etc/postgresql/10/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

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

上記の出力からわかるように、PostgreSQLサーバーはすべてのインターフェイス(0.0.0.0)でリッスンしています。

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

以下に、さまざまな使用例を示すいくつかの例を示します。

/etc/postgresql/10/main/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using a md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using a md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

結論

Ubuntu 18.04サーバーにPostgreSQLをインストールおよび構成する方法を学習しました。

このトピックの詳細については、PostgreSQL 10.4ドキュメントを参照してください。

UbuntuのPostgreSQLデータベース