2017-05-31 9 views
1

私はPostgreSQLサーバへのpgAdminアクセスをサーバ以外の任意のステーションから禁止することに興味があります。 pg_hba.confを使ってこれを行うことは可能ですか? PostgreSQLサーバは、他のステーションからの私のアプリケーション用のサーバへのアクセスを許可しなければなりません。pgAdminアクセス制御をPostgreSQLに

+2

使用中のSQLクライアントアプリケーションに基づいてアクセスをブロックすることはできません。 –

+0

クライアントとは関係なく、hba_fileを使用してサーバー以外の任意のステーションからのアクセスをブロックすることができます –

+0

[dba.se]のほうが適しているかもしれません – Iceman

答えて

1

いいえ、これはできません。クライアント(アクセスのモード)は問題ではなく、接続で何をするのかが分かりません。

ユーザーがSQLインジェクションなどで任意のSQLを実行するようにアプリを操作すると、同じ位置に戻ります。

その代わり、という制限されたユーザーの役割を使用するようにアプリケーションを設定:

  • は、テーブルを所有していないことが
  • を使用してスーパユーザではありませんが、それだけに最小限の権限GRANT編を持っています

があり、好ましくはDB内のデータ整合性を維持するためのトリガなどのガードも追加します。これにより、誰かがアプリケーションからデータベースの資格情報を抽出し、SQLクライアント経由で直接使用する場合に被害を軽減するのに役立ちます。

ます。また、それは難しく、アプリケーションのバイナリなどを持つ人のための資格情報を抽出して直接postgresのに接続するためにそれらを使用することができます:あなたは、単一のDBの役割を使用している場合md5認証

  • を使用して

    • (a)構成の中で明白ではないどこかでdbパスワードの曖昧なコピーを保管してください。
    • sslmode=verify-fullを使用すると、すべてのユーザー間で共有されます。サーバー証明書
    • あなたのアプリでクライアント証明書を埋め込み、サーバーによって許可される接続のための順序で提示されることを必要
    • あなたがすることなく、あなたの用途を信頼できない場合(ただし、本当にclient certificates

    を見ます積極的に悪意のあるものを実行してDELETE FROM customer;などを実行すると、SQL接続を保護し、さらに制限を適用するためにミドルウェアが必要になります。レート制限アクセス、一括更新の禁止など

  • +0

    ありがとうございます。 – user2398654