PostgreSQL データベース サーバー - Webmin ドキュメント (2023)

このページでは、PostgreSQLデータベースサーバー、Webmin を使用してテーブル、ユーザー、グループ、データを管理する方法について説明します。

コンテンツ

  • 1 PostgreSQL の概要
  • 2 PostgreSQL データベース サーバー モジュール
  • 3 新しいデータベースの作成
  • 4 新しいテーブルの作成
  • 5 フィールドの追加と編集
  • 6 フィールドの削除
  • 7 フィールドの種類
  • 8 テーブルの内容の表示と編集
  • 9 テーブルとデータベースの削除
  • 10 SQLコマンドの実行
  • 11 データベースのバックアップと復元
  • 12 PostgreSQL ユーザーの管理
  • 13 PostgreSQL グループの管理
  • 14 クライアントアクセスの制限
  • 15 オブジェクト権限の編集
  • 16 モジュールアクセス制御
  • 17 PostgreSQLデータベースサーバーモジュールの構成

PostgreSQL の概要

以下のようなMySQLデータベースサーバー, PostgreSQL は、複数のデータベースとテーブルをサポートし、クライアントが SQL を使用してそれらをクエリできるようにする無料のデータベース サーバーです。これは、データベースを使用して情報を保存する必要があるアプリケーションを作成するプログラマーにとって最も役立ちます。 Perl、C、Java、PHP などの一般的な言語はすべて、PostgreSQL データベースにアクセスするための API を備えています。

PostgreSQL サーバーは複数のデータベースをホストでき、各データベースには複数のテーブルを含めることができます。テーブルにはフィールドが含まれており、それぞれのフィールドにはタイプとサイズがあります。テーブルにはレコードが含まれており、各レコードには通常、人、製品、購入などのオブジェクトに関する情報が含まれています。フィールドはテーブル内の列、データの実際のレコードは行と考えることができます。一部のフィールドには、配列などの複数の値を含めることもできます。

SQL (Structured Query Language の略) は、データベースからデータを抽出したり、データベース内のデータを更新したりするための言語です。ほとんどすべてのデータベースで SQL が使用されており、その構文は通常、Oracle、PostgreSQL、MySQL などのさまざまなデータベース パッケージすべてで同じです。ただし、その構文についてはこの章では説明しません。

PostgreSQL のパッケージは多くの Linux ディストリビューションに付属しており、ほぼすべての種類の Unix にコンパイルしてインストールできます。その操作はすべてのオペレーティング システムで同じであるため、それを管理する Webmin モジュールも同様です。

PostgreSQL は、実際のデータベース ファイルを読み書きするサーバー プロセスと、サーバーと通信する一連のクライアント プログラムで構成されます。最も一般的に使用されるのは psql コマンドです。これを使用すると、ユーザーは SQL クエリを実行して結果を表示できます。どのクライアントもデータベース ファイルに直接アクセスすることはなく、完全にサーバーに任せられます。

すべての PostgreSQL データベース ファイルは、/var/lib/pgsql や /usr/local/pgsql などのディレクトリに保存されます。同様に、サーバーとクライアントの動作に影響を与えるテキスト構成ファイルがいくつかあります。最も重要なのは pg_hba.conf で、サーバーへの接続が許可されているクライアント ホストがリストされます。これは、Webmin が直接編集する唯一のファイルです。他のすべてのデータベース設定は、直接または psql コマンドを介してデータベース サーバーに接続することによって行われます。

PostgreSQL データベース サーバー モジュール

このモジュールを使用すると、管理者は PostgreSQL サーバー内のデータベース、テーブル、フィールド、およびレコードを管理できます。多くの点で、それはMySQLデータベースサーバーモジュール。 Webmin の [サーバー] カテゴリにあるアイコンをクリックすると、次のスクリーンショットに示すように、メイン ページにシステム上の既存のデータベースのリストが表示されます。

PostgreSQL データベース サーバー - Webmin ドキュメント (1)
PostgreSQL モジュールのメイン ページ

PostgreSQL がインストールされていない、初期化されていない、または接続できないことが Webmin によって検出された場合、メイン ページは上の画像のように表示されません。代わりに、何らかのエラー メッセージが表示されます。最も一般的なものについては、次のいくつかの段落で説明します。

システム上で PostgreSQL が実行されていないというメッセージが表示される場合は、このモジュールを使用してデータベース サーバーを管理する前に、データベース サーバーを起動する必要があります。をクリックするだけですPostgreSQLサーバーの起動ページの下部にあるボタン。今後、ブート時に開始したい場合は、Bootup and Shutdown モジュールを使用してください (詳細については、起動とシャットダウン) を使用して新しいアクションを作成し、それを開始します。ほとんどの Linux ディストリビューションでは、PostgreSQL パッケージには、デフォルトでは有効になっていない postgres または postgresql と呼ばれる起動アクション スクリプトが含まれています。

Webmin によって PostgreSQL が実行されている場合、接続に必要な管理ユーザー名とパスワードがわからないため、メイン ページに *PostgreSQL ログイン* フォームが表示されます。データベース サーバーの有効なログイン詳細を入力する必要があります。通常は、すべてのデータベースと機能に完全なアクセス権を持つ postgres ユーザーです。他の権限の低いユーザーとしてログインしても、最初は機能するかもしれませんが、モジュールのすべての機能を使用できるわけではありません。 PostgreSQL は、個別のログインとパスワード (ident 認証モード) ではなく、Unix ユーザー名によってユーザーを認証するように設定されている場合があります。これがシステムに当てはまる場合は、次のことを確認する必要があります。同じ Unix ユーザーとして接続しますか?フォーム上のボックス。

PostgreSQL ホスト構成ファイルのようなエラー メッセージが表示された場合hba.conf「見つかりませんでした」というメッセージが表示された場合は、モジュールの構成が間違っているか、サーバーがまだ初めて初期化されていません。 Linux システム用のパッケージ バージョンの多くは、使用する前に、通常は initdb コマンドを実行して初期化する必要があります。モジュールがシステム上でこれを行う方法を認識している場合、データベースの初期化ボタンが表示されるので、初めてサーバーをセットアップするためにクリックします。

エラー メッセージ PostgreSQL クライアント プログラム *psql がシステム上に見つかりません* は、PostgreSQL がまったくインストールされていないか、Webmin が予期しているディレクトリとは異なるディレクトリにあることを示します。 Linux および FreeBSD システムでは、モジュールはディストリビューションに含まれるデータベースのパッケージがインストールされていることを前提としますが、他のオペレーティング システムでは、ソース コードから /usr/local/pgsql への標準インストールが完了していることを前提とします。インストールしてもエラー メッセージが表示される場合は、*PostgreSQL データベース サーバー モジュールの構成* セクションを読んで、モジュールが使用するパスを調整する方法の詳細を確認する必要があります。

Linux を実行していて PostgreSQL がインストールされていない場合は、ソフトウェアパッケージモジュールを使用して、配布 CD または Web サイトから postgres で始まるすべてのパッケージをインストールします。多くの場合、postgresql、postgresql-server、postgresql-devel など、複数存在します。他のオペレーティング システムについては、次のサイトを参照してください。http://www.postgresql.org/ソース コードの配布をダウンロードし、コンパイルしてインストールします。

PostgreSQL モジュールは SQL コマンドを使用して、テーブルの作成、フィールドの追加、レコードの編集などのアクションを実行します。これらのコマンドを実行するには、Webmin はデータベース サーバーに接続する必要があります。これは 2 つの方法のいずれかで実行できます。正しいパラメータを指定して psql コマンドを実行してその出力を解析することも、Perl DBI ライブラリを使用して直接接続することもできます。

psql コマンドはデータベース サーバーのインストール時に常にインストールされるため、前者の方法は常に使用できます。ただし、特定の種類のテーブル データは常に解析できない出力を生成するため、完全に信頼できるわけではありません。このため、DBI および DBD::Pg Perl モジュールをインストールする必要があります。いずれかが欠落している場合は、メイン ページの下部に、リンクをクリックして一方または両方をインストールするように求めるメッセージが表示されます。これにより、次のページが表示されます。PerlモジュールDBI や DBD::Pg がダウンロードされ、インストールされるモジュールです。

新しいデータベースの作成

PostgreSQL を初めてインストールすると、通常、template1 というデータベースが作成されます。これは新しいデータベースのテンプレートとして使用されるため、アプリケーションがデータを保存するためのテーブルを含む独自のテーブルを作成する必要があります。これを行う手順は次のとおりです。

  1. モジュールのメイン ページで、既存のデータベース アイコンの表の上または下にある *新しいデータベースの作成リンク* をクリックします。
  2. 一意の名前をデータベース名分野。これは、文字、数字、_ 文字のみで構成されている必要があります。
  3. ときデータベースファイルのパスフィールドに設定されるのは、デフォルト、実際にデータベースのデータを含むファイルはデフォルトのディレクトリに作成されます。 Linux システムでは、これは通常 /var/lib/pgsql/data のようなものになりますが、他のオペレーティング システムでは、おそらく /usr/local/pgsql/var になります。別のディレクトリを使用するには、Unix ユーザーとしてデータベースを実行し (通常は postgres)、まず mkdir コマンドを使用してデータベースを作成し、次にディレクトリ名をパラメータとして指定して initlocation を実行します。次に、セクションのラジオ ボタンを選択します。データベースファイルのパスフィールドに移動し、隣接するテキスト ボックスにディレクトリを入力します。残念ながら、PostgreSQL が絶対データ ディレクトリ パスをサポートするようにコンパイルされていない限り、作成ボタン。デフォルトでは、この機能は有効になっていません。
  4. クリック作成ボタン。データベースが追加され、新しいアイコンが含まれるモジュールのメイン ページに戻ります。 template1 というデータベースがサーバー上に存在する場合、そこに含まれるテーブルやその他のオブジェクトは、新しく作成されたデータベースにコピーされます。これは、同様の構造を持つ多数のデータベースを追加する場合に便利です。

新しいテーブルの作成

テーブルはいつでも既存のデータベースに追加できます。各テーブルには 1 つ以上のフィールドがあり、それぞれのフィールドにはタイプ、サイズ、その他の属性があります。テーブルを追加するには、次の手順に従います。

  1. メイン ページで、テーブルを追加するデータベースのアイコンをクリックします。これにより、以下のスクリーンショットに示すデータベース編集ページが表示されます。このページには、既存の各テーブルのアイコンが表示されます。
  2. 新しいテーブルに含めるフィールドの数を田畑の横にあるテキストボックス新しいテーブルを作成するボタンを選択し、 ボタンをクリックします。これにより、新しいテーブルとその初期フィールドの詳細を入力するフォームが表示されます。
  3. テーブルの名前を選択し、それをテーブル名分野。名前はデータベース内で一意である必要があり、文字、数字、_ 文字のみを使用する必要があります。
  4. の各行初期フィールドtable は、新しいテーブルに追加されるフィールドを定義します。追加されるフィールドの種類は、次の各列の下の行に入力した内容によって異なります。
    • フィールド名このフィールドの名前。テーブル内で一意である必要があり、文字、数字、_ のみで構成されている必要があります。空白のままにすると、この行にフィールドは追加されません。
    • データ・タイプこのメニューからの選択によって、このフィールドに保存できるデータのタイプが決まります。最も一般的なタイプは次のとおりです。可変長文字可変長テキスト文字列の場合、int4整数の場合は float4、小数の場合は float4 です。を参照してください。フィールドの種類詳細については、以下のセクションを参照してください。
    • 文字幅このフィールドは空白のままにすることができ、その場合、選択したタイプのデフォルトのサイズが使用されます。それ以外の場合は、フィールドに格納できる文字数 (char または varchar フィールドの場合) または桁数 (数値フィールドの場合) を数値を入力する必要があります。 BLOB や日付などの一部の型では、型を指定する必要がないか、まったく指定できません。
    • フィールドオプションもしも配列?チェックされている場合、このフィールドは複数の値を格納できる配列になります。もしもNullを許可します?チェックを入れると、データベースは SQL NULL 値をこのフィールドに挿入できるようになります。もしも主キー?がチェックされている場合、このフィールドはテーブルの主キーの一部になります。すべてのテーブルにはキーが必要です。キーは通常、最初のフィールドであり、int または varchar 型です。いつ個性的?がチェックされている場合、PostgreSQL は、このフィールドに同じ値を持つ複数のレコードを防止します。主キーフィールドも自動的に一意になります。
  1. フィールドの入力が完了したら、作成ページの下部にあるボタン。テーブルがデータベースに追加され、既存のテーブルをリストするページに戻ります。

PostgreSQL データベース サーバー - Webmin ドキュメント (2)
データベース編集ページ

フィールドの追加と編集

新しいフィールドをテーブルに追加したり、既存のフィールドの名前を変更したりできます。ただし、フィールドを削除して再度追加しない限り、フィールドのサイズのタイプを変更する方法はありません。フィールドが作成されると、最初は常にテーブルの既存の行に NULL 値が含まれます。

フィールドを追加するには、次の手順に従います。

  1. モジュールのメイン ページで、テーブルを含むデータベースのアイコンをクリックします。次に、テーブル自体のアイコンをクリックします。これにより、以下のスクリーンショットに示すように、既存のフィールドの名前、タイプ、サイズをリストしたページが表示されます。
  2. [*タイプのフィールドを追加*] ボタンの横にあるメニューから、新しいフィールドのタイプを選択します。クリックすると、ブラウザに残りの詳細を入力するためのフィールド作成フォームが表示されます。
  3. 文字、数字、_ 文字のみで構成されるこのフィールドの名前を選択し、それをフィールド名テキストボックス。同じテーブル内の 2 つのフィールドに同じ名前を付けることはできません。
  4. char または varchar フィールドの場合、フィールドに保持できる最大文字数を入力します。文字幅テキストボックス。数値フィールドの場合は、代わりに次のように 2 つの数値をカンマで区切って入力する必要があります。10,2。 1 つ目はこのフィールドの数値が格納できる最大桁数で、2 つ目は小数点の右側の桁数です。他のフィールド タイプの場合、文字幅テキストボックスが全く表示されません。
  5. このフィールドに同じタイプの複数の値を保存できるようにする場合は、はいのために配列フィールド?オプション。
  6. クリック作成入力にエラーがない限り、フィールドをテーブルに追加します。

PostgreSQL データベース サーバー - Webmin ドキュメント (3)
テーブル編集ページ

フィールドが作成されると、タイプやサイズを変更できる MySQL とは異なり、変更できるのは名前のみです。ただし、これは、そこに含まれるデータにはリスクがないことを意味します。テーブル内のフィールドの名前を変更するには、次の手順に従います。

  1. モジュールのメイン ページで、テーブルを含むデータベースのアイコンをクリックし、テーブル アイコンをクリックします。これにより、テーブル内のフィールドのリストが表示されます。その例が上のスクリーンショットに示されています。
  2. 変更するフィールドの名前をクリックします。
  3. 編集フォームで、フィールド名新しい名前のテキスト ボックス。当然のことながら、これはフィールドの作成時に適用されるものと同じ命名規則に従う必要があります。
  4. クリック保存ボタンをクリックしてデータベースに変更を加えます。

フィールドの削除

MySQL とは異なり、PostgreSQL データベース サーバーには、テーブルからフィールドを削除するための SQL コマンドが組み込まれていません。ただし、フィールドのない新しい一時テーブルを作成し、古いテーブルを削除し、一時テーブルの名前を元の名前に変更することで、フィールドの削除を実行することは可能です。これは機能し、Webmin がすべてを自動的に実行します。ただし、インデックスやデフォルトのフィールド値などの一部の情報はプロセスで失われます。ただし、テーブル内の実際のデータ (削除されたフィールドのデータは別として) は安全です。

テーブルにデフォルト値のインデックスやフィールドが含まれていない場合は、次の手順に従ってフィールドを削除できます。

  1. モジュールのメイン ページでテーブルを含むデータベースのアイコンをクリックし、次にテーブル アイコン自体をクリックします。
  2. クリックしてくださいドロップフィールドテーブル編集フォームの既存フィールドのリストの下にあるボタン。これにより、テーブル内のすべてのフィールドがリストされたページが表示されます。各フィールドの横にはラジオ ボタンがあります。これをドロップしてください
  3. テーブルから削除するラジオ ボタン フィールドを選択します。
  4. チェックしてくださいボックスを選択して確認しますフォームの下部にあるチェックボックス。
  5. ヒットドロップフィールドボタンをクリックして、選択したフィールドを削除します。削除すると、同じページが再表示されるので、必要に応じて別のページを削除できます。

フィールドの種類

PostgreSQL には多数のフィールド タイプがあり、そのすべてが Webmin でサポートされています。ただし、そのすべてが平均的なデータベースに特に役立つわけではありません。最良の情報源は、次の公式ドキュメントです。http://www.postgresql.org/docs/7.3/static/datatype.html

PostgreSQL には、点、パス、ボックス、円などの幾何学的オブジェクトを格納するためのいくつかのタイプと、inet、cidr、macaddr などのネットワーク情報用のタイプがあります。上記に記載されていない場合でも、これらすべてのタイプのフィールドは、このモジュールを使用して作成および編集できます。ただし、他のデータベース (Oracle や MySQL など) はこれらのタイプをサポートしていないため、プログラムをデータベースに依存しないようにしたい場合は、これらのタイプを避けることが賢明かもしれません。

テーブルの内容の表示と編集

PostgreSQL モジュールを使用すると、主キーがないテーブルであっても、データベース内のテーブルの内容を表示および編集できます。 MySQL モジュールとは異なり、各レコードの一意の識別子を含む特別な oid 列を使用して、編集する特定の行を識別できます。

テーブルの内容を表示するには、次の手順に従います。

  1. メイン ページで、テーブルを含むデータベースのアイコンをクリックし、次にテーブル自体のアイコンをクリックします。
  2. テーブル編集フォームで、データの表示下部にあるボタン。これにより、表の最初の 20 行の表が含まれるページが表示されます。
  3. 表に 1 ページに表示できる行数を超える場合は、表示範囲の開始と終了、および行の合計数が上部に表示されます。その隣には、次または前の 20 レコードに移動するための左矢印と右矢印があります。 MySQL モジュールとは異なり、このページではレコードを検索したり、特定の行番号にジャンプしたりする方法はありません。

この同じページを使用して、レコードを編集、削除、または追加することもできます。編集するレコードは、まず各行の右側にあるチェックボックスを使用して選択するか、すべて選択および *選択を反転リンク。 [*選択した行を編集] をクリックするとボタンを押すと、ページが再表示され、選択したすべてのレコードの値がテキスト ボックスに表示されます。必要に応じて変更を加え、保存ページ下部のボタンをクリックしてデータベースを更新します。あるいは殴るキャンセル変更を保存せずに編集を停止したい場合。

レコードを削除するには、同じチェックボックスと選択リンクを使用してレコードを選択し、選択した行を削除しますボタン。選択したレコードは、それ以上の確認なしでデータベースから直ちに削除されます。

新しいレコードを追加するには、行を追加するテーブルの下にあるボタン。新しい詳細を入力するための空のテキスト ボックスを含む追加の行が表示されます。クリックする保存新しいレコードがテーブルに追加され、新しい行が見えるように表示が移動します。または、キャンセルレコードの追加について気が変わった場合。

テーブルとデータベースの削除

このモジュールには、データベースからテーブルを削除するためのボタン、またはデータベース全体とその中のすべてを削除するためのボタンも含まれています。テーブルを削除すると、テーブルに含まれるすべてのレコードとフィールドが失われます

削除するには、次の手順に従います。

  1. モジュールのメイン ページで、テーブルを削除するデータベースのアイコンをクリックし、次にテーブル自体のアイコンをクリックします。
  2. クリックしてくださいドロップテーブルフィールドのリストの下にあるボタンをクリックします。これにより、確認ページが表示され、本当に削除するかどうかを尋ねられ、削除されるレコードの数が表示されます。
  3. 次に進むには、ドロップテーブルボタンをもう一度押します。削除されると、データベース内に残っているテーブルのリストに戻ります。

データベース全体とその中のすべてのテーブルとレコードを削除することもできます。どのデータベースも削除できますが、モジュールは他のデータベースのリストを取得するときにテンプレート 1 に接続し、テンプレート 1 が常に存在すると想定しているため、テンプレート 1 を削除することはお勧めできません。いつものように、バックアップを作成していない限り、削除を元に戻すことはできません。

本当にデータベースを削除したい場合は、次の手順に従います。

  1. メイン ページで、削除するデータベースのアイコンをクリックします。
  2. ヒットデータベースを削除テーブルのリストの下にあるボタンをクリックします。確認ページが表示され、続行すると失われるテーブルとレコードの数が示されます。
  3. 削除を続行するには、データベースを削除ボタンをクリックすると、完了するとモジュールのメイン ページに戻ります。

を変更すると、template1 データベースを削除できます。初期の PostgreSQL データベースモジュール構成のフィールドを、削除されない他のデータベースにコピーします。

SQLコマンドの実行

PostgreSQL モジュールは、データベース上で SQL コマンドを実行し、その出力を表示するためのシンプルなインターフェイスも提供します。それを使用する手順は次のとおりです。

  1. メイン ページで、コマンドを実行するデータベースのアイコンをクリックします。
  2. クリックしてくださいSQLの実行テーブルアイコンのリストの下にあるボタン。これにより、SQL コマンドを入力し、コマンドのファイルを実行し、データベースにデータをロードするためのページが表示されます。
  3. ページ上部のテキスト ボックスに SQL コマンドを 1 つ入力し、実行するボタン。 SQL 構文に誤りがある場合、またはコマンドが実行できない場合は、PosygreSQL からのエラー メッセージが表示されます。それ以外の場合は、SQL からの結果 (存在する場合) の表が表示されます。 SELECT ステートメントのみが結果を生成します。UPDATE、INSERT、およびレコードを変更するその他のコマンドは結果を生成しません。

MySQL モジュールとは異なり、コマンド履歴や、ファイルからの複数の SQL ステートメントの実行のサポートはありません。

データベースのバックアップと復元

データベースの 1 つに重要な情報が含まれている場合は、ディスク障害や SQL ミスによってデータが失われる場合に備えて、定期的にバックアップする必要があります。また、多くのレコードを変更する複雑な SQL ステートメントの実行など、潜在的に危険な操作を実行する前にバックアップを作成することもお勧めします。

pg_dump および pg_restore コマンドのパラメーターの変更により、このモジュールでは、PostgreSQL バージョン 7.2 以降を使用している場合にのみバックアップの作成と復元が可能になります。古いリリースを使用している場合、以下の手順で説明するボタンは表示されません。

モジュールを使用してバックアップを作成するには、次の手順に従います。

  1. メイン ページで、バックアップするデータベースのアイコンをクリックします。
  2. テーブルのリストの下にある *バックアップ * ボタンをクリックします。バックアップ先とオプションを入力するフォームが表示されます。
  3. の中にバックアップファイルのパスフィールドに、バックアップを書き込む必要がある完全なファイル パスを入力します。/tmp/backup.tar。ファイルがすでに存在してはいけません - 存在する場合、次のキーを押すとエラーが発生します。バックアップボタン。
  4. [バックアップ ファイル形式] メニューから、作成するファイルの種類を選択します。使用可能なオプションは次のとおりです。 *プレーン SQL テキスト *ファイルには、データベース内にテーブルを再作成し、データを再設定する一連の SQL コマンドが含まれます。この形式は、バックアップ ファイルを手動で編集できる点で便利ですが、SQL バックアップに大きなオブジェクト (BLOB など) を含めたり、SQL バックアップから選択的に復元したりすることはできません。 *tar アーカイブ *バックアップ ファイルは標準の Unix tar ファイルになり、テーブルの構造と内容を指定するさまざまなファイルが含まれます。大きなオブジェクトがサポートされており、選択的な復元が可能です。 *カスタム アーカイブ *ファイルは PostgreSQL のカスタム バックアップ形式になります。この形式は圧縮されており、大きなオブジェクト、データの除外、復元時の並べ替えをサポートしています。
  5. バックアップを作成するには、フォームの下部にある *バックアップ * ボタンをクリックします。すべてがうまくいけば、テーブル リストにリダイレクトされます。それ以外の場合は、バックアップ コマンドの実行とそのエラー出力を示すページが表示されます。

重要な運用目的で使用されているデータベースがある場合は、1 日に 1 回など、定期的にバックアップする必要があります。上記の手順に毎日従う代わりに、スケジュールされた Cron ジョブ モジュール (第 10 章で説明) を使用して、バックアップを実行するジョブを作成できます。実行するコマンドを確認するには、まず上記の手順に従ってバックアップを作成し、次に Webmin アクション ログ モジュール (第 54 章で説明) にアクセスして、使用されているコマンドを確認します。

バックアップ ファイルが作成されると、同じシステムまたは MySQL を実行している別のサーバーに復元できます。手順は次のとおりです。

  1. モジュールのメイン ページで、バックアップを復元するデータベースのアイコンをクリックします。
  2. ヒット戻すテーブルのリストの下にある ボタンをクリックすると、バックアップ ファイルを選択するためのフォームが表示されます。
  3. の中にバックアップファイルのパスフィールドに、次のような PostgreSQL バックアップ データを含むファイルへのフル パスを入力します。/tmp/backup.tar。このファイルは、バックアップ フォームで使用できる任意の形式にすることができます。
  4. 通常、復元プロセスでは、テーブルにデータを復元する前にテーブルの再作成が試行されます。これを回避するには、テーブルではなくデータのみを復元しますか?フィールドからはい。これは、バックアップ内のすべてのテーブルがすでに存在している場合にのみ機能します。現在含まれているすべてのデータは、復元されたレコードと結合されます。
  5. 通常、バックアップ内のテーブルがデータベースにすでに存在する場合、復元プロセスは失敗します。復元前に既存のテーブルを削除するには、復元する前にテーブルを削除しますか?フィールドからはい。このフィールドと前のフィールドの両方を次のように設定しても意味がありません。はい
  6. クリック戻すボタンをクリックして、バックアップ ファイルからデータとテーブルを再ロードします。何か問題が発生した場合は、pg_restore コマンドの出力を示すエラー メッセージが表示されます。問題が発生した場合は、データベース内のテーブルのリストに戻ります。

PostgreSQL ユーザーの管理

ご想像のとおり、PostgreSQL データベース サーバーでは、誰でも簡単に接続してデータの操作を開始できるわけではありません。代わりに、クライアントにユーザー名とパスワードの送信を要求することでクライアントを検証し、それを独自の内部ユーザー リストと照合します。このデータベース ユーザーのリストは、/etc/passwd ファイル内の Unix ユーザー リストとはまったく別のものです。

デフォルトでは、ユーザー postgres のみが存在し、このユーザーはすべてのデータベースとテーブルへの完全なアクセス権を持ちます。データベースを使用するアプリケーションを作成している場合は、そのアプリケーションにログインするための新しいユーザーを作成する必要があります。複数のユーザーが psql コマンドまたはその他のクライアント プログラムを使用してデータベースにアクセスする場合は、各自が独自のログイン名とパスワードを持っている必要があります。

新しいユーザーを追加するには、次の手順に従います。

  1. モジュールのメイン ページで、PostgreSQL ユーザーアイコン。これにより、以下のスクリーンショットに示すように、既存のユーザーとその能力のリストが表示されます。
  2. クリックしてください新しいユーザーリンクを作成するリストの上または下に移動すると、ユーザー作成フォームが表示されます。
  3. 文字、数字、_ 文字のみで構成されるユーザーの一意の名前をユーザー名分野。
  4. このユーザーのパスワードを設定するには、ボックスの 2 番目のラジオ ボタンを選択します。パスワードフィールドに入力し、その横のテキスト ボックスにパスワードを入力します。もしもなしが選択されている場合、(*クライアント アクセスの制限* セクションで説明されているように) パスワードなしで接続できるようにサーバーが設定されていない限り、ユーザーはログインできません。
  5. このユーザーが独自のデータベースを作成できるようにするには、データベースを作成できますか?フィールドからいいえ。実際にこれを実行できる必要があるのは、マスター管理ユーザー (postgres) のみです。
  6. このユーザーに PostgreSQL ユーザーを編集および作成する権限を与えるには、ユーザーを作成できますか?フィールドからはい。繰り返しますが、これは通常はそのままにしておく必要がありますいいえ
  7. まで有効フィールドは、このユーザーが使用できる期間を制御します。もしも永遠にが選択されている場合、有効期限はありません。ただし、2 番目のオプションが選択され、YYYY-MM-DD 形式の日付がテキスト フィールドに入力された場合、その日付以降はアカウントは使用できなくなります。
  8. クリック作成ボタンをクリックして、新しいアカウントを PostgreSQL のユーザー リストに追加します。ユーザーまたはプログラムは、このユーザーとしてすぐにログインできるようになります。多くの場合、データベース サーバーはデフォルトで、ローカル ユーザーがパスワードをまったく入力しなくてもログインできるように設定されています。これを変更するには、を参照してください。クライアントのアクセスを制限するセクション。
  9. この新しいユーザーがアクセスできるテーブルとビューを正確に構成するには、*オブジェクト権限の編集* セクションの手順に従ってください。

PostgreSQL データベース サーバー - Webmin ドキュメント (4)
既存の PostgreSQL ユーザー

ユーザーを作成したら、上のスクリーンショットに示されているユーザー リストでその名前をクリックして編集できます。これにより、ユーザー名を変更できないことを除いて、ユーザー作成フォームとほぼ同じ編集フォームが表示されます。パスワード、有効期限、その他のフィールドの変更が完了したら、保存ボタンをクリックして変更を有効にします。

をクリックしてユーザーを削除することもできます。消去編集ページの ボタンをクリックします。 postgres ユーザーは通常、この Webmin モジュールによって PostgreSQL にログインするために使用されるため、削除しないように注意してください。実際、有効期限を設定したり、データベースや他のユーザーを作成する機能を無効にしたりすると、このユーザーを編集しても問題が発生する可能性があります。

他の多くのモジュールと同様に、このモジュールは、Unix ユーザーが追加、変更、または削除されたときに、PostgreSQL ユーザーを自動的に作成、更新、または削除するように構成できます。これは、システム上の一部の Unix ユーザーにデータベースへのアクセスを許可し、パスワードを同期させたい場合に便利です。

同期を設定するには、次の手順に従います。

  1. モジュールのメイン ページで、PostgreSQL ユーザーアイコンをクリックし、既存のアカウントのリストの下にあるフォームまでスクロールします。
  2. 新しい Unix ユーザーごとに新しい PostgreSQL ユーザーを作成する場合は、[*Unix ユーザーの追加時に新しい PostgreSQL ユーザーを追加する*] ボックスをオンにします。ただし、自動的に作成されたユーザーには特定のオブジェクト権限はありません。
  3. 一致する Unix ユーザーに同じことが起こったときに PostgreSQL ユーザーのパスワードを変更したい場合は、*一致する Unix ユーザーが変更されたときに PostgreSQL ユーザーを更新する* ボックスをオンにします。
  4. PostgreSQL ユーザーを同じ名前の Unix ユーザーと同時に削除するには、[*一致する Unix ユーザーが削除されたときに PostgreSQL ユーザーを削除する*] ボックスをオンにします。
  5. ヒット保存ボタンをクリックして、新しい同期設定を有効にします。

PostgreSQL グループの管理

PostgreSQL は独自のグループの内部リストを保持しており、各グループには 0 人以上のユーザーを含めることができます。グループは、一度に多くのユーザーにテーブルまたはビューへのアクセスを許可できるため、オブジェクト権限を割り当てるときに最も役立ちます。それ以外には、アクセス制御や認証において何の役割も果たしません。

グループを作成するには、次の手順に従います。

  1. モジュールのメイン ページで、PostgreSQL グループアイコン。ブラウザには、既存のグループとそのメンバー (存在する場合) の表が表示されます。 PostgreSQL が最初にインストールされたときは、グループは定義されていません。
  2. クリックしてください新しいグループを作成するリンクをクリックしてグループ作成フォームに移動します。
  3. 文字、数字、_ 文字で構成される名前を入力します。グループ名分野。他のグループまたはユーザーが同じ名前を持つことはできません。
  4. 出てグループIDID は Webmin によって自動的に選択されるため、フィールドは変更されません。
  5. このグループのメンバーとなるユーザーをメンバーリスト。ほとんどのブラウザでは、Ctrl キーを押しながらクリックして複数のユーザー名を選択するか、Shift キーを押しながらクリックして範囲全体を選択できます。
  6. クリック作成をクリックしてグループを追加します。で説明されているように、オブジェクト権限を割り当てることができるようになりました。オブジェクト権限の編集セクション。

ユーザーと同じように、作成したグループを編集するには、[PostgreSQL グループ] ページのリストでその名前をクリックし、編集フォームで名前またはメンバーシップ リストを変更して、保存。または、 をクリックして削除することもできます。消去同じフォーム上のボタン。

クライアントのアクセスを制限する

通常、デフォルトの PostgreSQL 構成では、すべてのユーザーがログインせずに同じシステムからデータベース サーバーに接続できますが、すべてのリモート アクセスは禁止されます。クライアントが他のシステムから接続できるようにする場合 (たとえば、別の Web サーバーからアクセスするデータベース サーバーを設定している場合)、これを許可するように PostgreSQL を構成する必要があります。

別のホストへのアクセスを許可するには、次の手順に従います。

  1. モジュールのメイン ページで、許可されたホストアイコン。接続が許可されるホスト、クライアントがアクセスできるデータベース、および使用される認証モードをリストするページが表示されます。通常、最初はローカル接続と 127.0.0.1 からの接続のみが許可されます。
  2. クリックしてください新しい許可されたホストを作成するリストの上または下のリンクをクリックすると、ホスト作成フォームが表示されます。
  3. の中にホストアドレスフィールド、選択単一ホストリモート クライアント システムの IP またはホスト名を隣のフィールドに入力します。または、LAN 全体を許可するには、通信網ネットワーク アドレスを入力します (例:192.168.1.0) とネットマスク (例:255.255.255.0) をその隣のフィールドに入力します。
  4. 指定したホストまたはネットワークにサーバー上のすべてのデータベースへのアクセスを許可するには、データベースに設定されたフィールドすべてのデータベース。それ以外の場合は、メニューから選択してクライアントをそのクライアントだけに制限します。クライアントに 2 つのデータベースへのアクセスを許可する場合は、それぞれ異なる選択肢を選択した 2 つのホスト エントリを追加する必要があります。データベースメニュー。
  5. の中に認証モードフィールド、選択平文パスワード。オプション認証は必要ありませんまた、クライアント システム上のユーザーが接続できるようになりますが、有効なパスワードを入力する必要はありません。明らかに、これはあまり安全ではありません。
  6. ヒット作成ボタンをクリックして、新しい許可ホスト エントリを追加します。

システムに複数のユーザーがおり、各ユーザーが PostgreSQL データベースにデータを所有している場合、パスワードなしでデータベース サーバーにログインすることを許可すべきではありません。デフォルトでは、PostgreSQL はまさにこれを許可しますが、これは特に安全ではありません。幸いなことに、それは簡単に修正できます。ただし、Webmin 自体はデフォルトでパスワードなしで postgres ユーザーとしてログインするように設定されていることが多いため、データベースからロックされてしまうリスクがあります。

以下の手順に従って、パスワードを使用してログインするようにモジュールを再構成し、ローカル ユーザーに同じことを強制します。

  1. モジュールのメイン ページで、PostgreSQL ユーザーアイコンをクリックし、postgres ユーザー上で編集フォームを表示します。
  2. [パスワード] フィールドの 2 番目のラジオ ボタンを選択し、隣接するテキスト フィールドに適切な安全なパスワードを入力します。次にクリックします保存
  3. モジュールのメイン ページに戻り、モジュール構成リンク。
  4. の中に管理パスワードフィールド、選択に設定選択したパスワードをテキストフィールドに入力します。次にクリックします保存フォームの下部にあります。
  5. クリックしてください許可されたホストアイコンをクリックしてからオンにしますローカル接続ホストアドレス桁。 *認証モード* フィールドを次のように変更します。平文パスワードをクリックして、保存ボタン。ブラウザが許可されたホストのリストに戻ったら、次をクリックします。127.0.0.1そして同じ変更を加えます。
  6. モジュールのメイン ページに戻ります。すべてがうまくいけば、引き続きデータベースを表示および管理でき、すべてのユーザーが接続するにはパスワードが必要になります。

クライアントがデータベース サーバーに接続すると、PostgreSQL は [許可されたホスト] ページのホスト エントリを順番にチェックします。クライアント アドレスと要求されたデータベースに一致するものが見つかるとすぐに、そのエントリの認証モードが使用されます。この機能を使用すると、*ホスト アドレス * フィールドにブロックしたい IP を設定したホスト エントリを作成することで、特定のホストをブロックし、他のすべてのホストを許可できます。認証モードに設定接続を拒否する。このエントリは、同じクライアントを許可するより広範なエントリの上のリストに表示される必要があります。

新しい許可されたホスト エントリは常にリストの最後に追加されるため、ページには移動する機能があります。の下にある上向き矢印と下向き矢印動くリスト内の列をクリックすると、エントリをそれぞれ 1 つ上または下に移動できます。

オブジェクト権限の編集

各 PostgreSQL オブジェクト (テーブル、ビュー、インデックス、またはシーケンス) には、それを作成したユーザーである所有者がいます。デフォルトでは、所有者のみがオブジェクトからデータを選択したり、オブジェクト内のレコードを更新したりできます。これは、サーバーに同じテーブルにアクセスする必要がある複数のユーザーがいる場合にはあまり役に立ちません。幸いなことに、以下の手順に従って、データベース オブジェクトへのアクセスを他のユーザーまたはグループに許可することができます。

  1. モジュールのメイン ページで、「付与された権限」アイコンをクリックします。実際にデータベースにいくつかのテーブルがあると仮定すると、既存のすべてのオブジェクトとその現在の権限をリストするページが表示されます。
  2. アクセスを許可するオブジェクトの名前をクリックすると、その権限編集フォームが表示されます。
  3. 権限を付与する表には、アクセスが許可されているすべてのユーザーとグループがリストされ、その後に新しいユーザーとグループを追加するための空白行が続きます。ただし、ほとんどの場合、その 1 つの空の行が含まれるだけです。の中にユーザー列で、権限を付与するユーザーまたはグループの名前をメニューから選択するか、みんなすべての PostgreSQL ユーザーにアクセスを許可します。 [権限] 列で、選択したユーザーまたはグループに付与する必要がある権限のボックスをオンにします。使用可能なオプションの意味は次のとおりです。 *SELECT *チェックすると、ユーザーはこのテーブル内のレコードを表示するか、SQL SELECT クエリを使用してビューを表示できるようになります。 *UPDATE *このオプションを選択すると、ユーザーはテーブル内の既存のレコードを更新できるようになります。 *INSERT *このオプションは、SQL INSERT ステートメントを使用してテーブルに新しいレコードを追加する権利をユーザーに与えます。 *DELETE *チェックすると、ユーザーはテーブルから既存のレコードを削除できるようになります。 *RULE *ユーザーがテーブルまたはビューにルールを作成できるようにします。ルールは、テーブル内で挿入、更新、または削除されたデータを変換するために実行される SQL コードの一部です。 *REFERENCES *ユーザーがこのテーブルを外部キーとして参照するフィールドを作成できるようにします。 *TRIGGER *チェックすると、ユーザーはこのテーブルのトリガーを作成できるようになります。テーブルには一度に 1 つの空の行しか表示されないため、複数のユーザーにアクセスを許可する場合は、オブジェクトのアクセス許可を保存して再編集する必要があります。複数のユーザーに同じ権限を与える場合は、それらのユーザーをグループに入れて、そのグループにアクセスを許可することをお勧めします。 # ヒット保存ページの下部にあるボタンをクリックして、新しい権限をアクティブにします。

MySQL とは異なり、ユーザーにデータベース全体またはテーブル内のフィールドのみへのアクセスを許可する方法はありません。すべての権限はテーブル レベルでのみ付与されます。

モジュールアクセス制御

としてWebminユーザーの説明では、一部のモジュールの機能のサブセットのみにアクセスできる Webmin ユーザーを作成することが可能です。 PostgreSQL Database Server モジュールの場合、ユーザーが特定のデータベースのテーブルとフィールドを管理できるように制限し、そのユーザーがユーザー、グループ、または付与された権限を編集できないようにすることができます。これは、サーバー上のさまざまなデータベースが異なる人によって所有されており、各データベースに Webmin ログインを与えて、その人に属するデータベースのみを管理したい場合に便利です。

ユーザーにモジュールへのアクセス権が与えられたら、ユーザーを特定のデータベースのみに制限するには、次の手順に従います。

  1. Webmin ユーザー モジュールで、モジュールにアクセスできるユーザーまたはグループの名前の横にある PostgreSQL データベース サーバーをクリックします。
  2. アクセス制御フォームで、モジュール構成を編集できますか?フィールドからいいえ。これは、モジュールがデータベースにアクセスするために使用するプログラムをユーザーが変更するのを防ぐために必要です。
  3. の中にこのユーザーが管理できるデータベースフィールドで、選択済みオプション。次に、アクセスできるデータベースを下のリストから選択します。
  4. 変更新しいデータベースを作成できますか?フィールドからいいえ。このタイプの制限付きユーザーが新しいデータベースを追加できる理由はありません。
  5. ユーザーが自分のデータベースを削除できるようにしたくない場合は、データベースを削除できますか?フィールドからいいえ。に設定したままにすると、はいただし、彼はあなたがアクセスを許可したもののみを削除できるため、無害です。
  6. 変更PostgreSQLサーバーを停止および起動できますか?フィールドからいいえ
  7. 変更ユーザー、グループ、ホスト、権限を編集できますか?フィールドからいいえそのため、すべてのデータベースにアクセスできる新しい PostgreSQL ユーザーを作成できなくなります。
  8. をセットするバックアップを作成できますか?フィールドからいいえバックアップを作成する権限をユーザーに与えると、システム上のファイルを上書きできる可能性があるためです。
  9. バックアップを復元できますか?フィールドは安全に設定できますはい、ユーザーがバックアップ ファイルからデータベースにデータを再ロードすることを許可しても危険はないためです。
  10. 最後に、新しいアクセス制御制限をアクティブにするには、をクリックします。保存

PostgreSQL データベース サーバー モジュールの構成

他のほとんどのモジュールと同様に、このモジュールにもいくつかのオプションがあり、モジュール構成メインページの左上隅にあるリンク。 *構成可能なオプション* の下にリストされているフィールドはデータベースとユーザー インターフェイスへの接続に関連しており、以下のフィールドはシステム構成PostgresSQL プログラムとファイルへのパスを定義します。

オペレーティング システムのデフォルトとは異なるディレクトリにデータベース サーバーをインストールしていない限り、通常、2 番目のセクションのフィールドを変更する必要はありません。これは、Linux ディストリビューションに付属のパッケージを使用するのではなく、ソース コードから PostgreSQL をインストールした場合、または PostgreSQL のコピーが 2 つインストールされており、モジュールのクローンを構成している場合に発生する可能性があります (「Webmin設定) 2 番目のインストールを管理します。

References

Top Articles
Latest Posts
Article information

Author: Duncan Muller

Last Updated: 20/11/2023

Views: 5583

Rating: 4.9 / 5 (59 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Duncan Muller

Birthday: 1997-01-13

Address: Apt. 505 914 Phillip Crossroad, O'Konborough, NV 62411

Phone: +8555305800947

Job: Construction Agent

Hobby: Shopping, Table tennis, Snowboarding, Rafting, Motor sports, Homebrewing, Taxidermy

Introduction: My name is Duncan Muller, I am a enchanting, good, gentle, modern, tasty, nice, elegant person who loves writing and wants to share my knowledge and understanding with you.