4

これらの条件でpostgresqlに接続する方法を知りたいです:

  • 任意の場所からそれらにアクセスできるようにします(IPフィルタリングを実行します)
  • 安全な接続(パスワードを取得するリスクはありません)
  • セットアップが簡単で、できればそのためにサーバーのみを構成する必要があります。

推奨されるアプローチはSSHポート転送を使用することですが、これには、これらのデータベースに接続する前にポート転送を開始する必要があります。

クライアントで複雑なセットアップを行うことなく、十分なセキュリティを取得するための最も簡単な方法は何ですか。

オンデマンドでポートフォワーディングを自動有効にする方法はありますか?

4

2 に答える 2

2

PostgreSQLの場合、SSL対応のビルドを使用していることを確認することから始めます。(これがほとんどのインストーラーのデフォルトだと思います。)

次に、サーバーがリモート接続を受け入れることを許可する必要があります(サーバーがリッスンlisten_addressesするIPアドレスを指定します):http ://www.postgresql.org/docs/9.1/interactive/runtime-config-connection.html

pg_hba.confファイルを使用すると、どのユーザーがどの認証方法を使用してどのIPアドレスからどのデータベースに接続できるかを指定できます。選択できる認証方法はたくさんあります:http ://www.postgresql.org/docs/9.1/interactive/client-authentication.html

クライアント側で何をする必要があるかについては、詳細は、どの環境からどのコネクタを使用しているかによって異なります。例として、PostgreSQL JDBCドライバーは、使用可能な場合、デフォルトでSSL接続を使用します。SSLを使用できない場合に接続を受け入れないようにJDBCドライバーに指示するには、JDBC接続プロパティを設定しますssl=truehttp://jdbc.postgresql.org/documentation/head/ssl-client.html

申し訳ありませんが、MySQLがこれをどのように管理しているかわかりません。

于 2012-04-15T14:54:02.457 に答える
1

私自身、Postgre の答えを見つけようとしていますが、MySQL でできることは次のとおりです。

まず、データベースへのリモート アクセスを有効にする必要があります。次のように、リモート アクセス機能を持つユーザーを作成できます。

GRANT ALL ON *.* to user@address IDENTIFIED BY 'password'; 
flush privileges;

詳細はこちら

これにセキュリティを追加するには、次のように「REQUIRE SSL」を GRANT コマンドに追加します。

GRANT ALL ON *.* to user@address IDENTIFIED BY 'password' REQUIRE SSL;

これはすべてサーバー側で行う必要があります。クライアントでは、接続に必要な証明書を提供するだけです。

証明書の作成の詳細については、MySQL サイトのステップ バイ ステップ ガイドがここにあります。

于 2012-10-06T08:35:04.710 に答える