アンドロイド

DebianのでPostgreSQLをインストールする方法9

目次:

Anonim

多くの場合、単にPostgresとして知られるPostgreSQLは、オープンソースの汎用オブジェクトリレーショナルデータベース管理システムです。 PostgreSQLには、オンラインバックアップ、ポイントインタイムリカバリ、ネストされたトランザクション、SQLおよびJSONクエリ、マルチバージョン同時実行制御(MVCC)、非同期レプリケーションなど、多くの高度な機能があります。

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

前提条件

このチュートリアルを進める前に、必ずsudo権限を持っているようにログインしているユーザーを作ります。

PostgreSQLのインストール

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

あなたのDebianサーバにPostgreSQLをインストールするには、次の手順を実行します。

  1. ローカルパッケージインデックスを更新することにより開始します。

    sudo apt update

    PostgreSQLサーバーおよびPostgreSQLデータベースに追加機能を提供するPostgreSQL contribパッケージをインストールします。

    sudo apt install postgresql postgresql-contrib

    インストールが完了すると、PostgreSQLのサービスが自動的に起動します。 インストールを確認するには、 psql ユーティリティを使用してPostgreSQLデータベースサーバーに接続し、サーバーバージョンを出力します。

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

    出力は次のようになります。

    version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit (1 row)

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/9.6/main/postgresql.conf /etc/postgresql/9.6/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/9.6/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

結論

Debian 9サーバーにPostgreSQLをインストールして設定する方法を学びました。 このトピックの詳細については、PostgreSQLドキュメントを参照してください。

debian postgresqlデータベース