ホームページ >データベース >mysql チュートリアル >SSH トンネリングを使用して Python からリモート MySQL サーバーに安全に接続するにはどうすればよいですか?

SSH トンネリングを使用して Python からリモート MySQL サーバーに安全に接続するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-10 18:04:101012ブラウズ

How Can I Securely Connect to a Remote MySQL Server from Python Using SSH Tunneling?

Python-MySQL 接続の SSH トンネリングの有効化

データベース接続の領域では、MySQLdb を利用してリモート サーバーへの Python 接続を確立することが重要です。一般的な習慣。この方法はその目的を果たしますが、データ プライバシーを強化するために SSH トンネルを介した接続を保護する必要がある場合があります。この記事では、Python 実装でこれを実現する方法について説明します。

伝統的に、MySQL サーバーへの Python 接続は MySQLdb モジュールを通じて直接確立されます。ただし、接続用の安全な SSH トンネルを確立するには、変更が必要です。 paramiko や sshtunnel などの外部ライブラリを利用することで、SSH 接続を作成し、ターゲット MySQL サーバーにポート転送することができます。

これは、Python-MySQL の SSH トンネルを設定する方法を示すコード サンプルです。 connectivity:

import pymysql
import paramiko
from paramiko import SSHClient
from sshtunnel import SSHTunnelForwarder

# SSH Configuration
ssh_host = 'ssh_hostname'
ssh_user = 'ssh_username'
ssh_port = 22
mypkey = paramiko.RSAKey.from_private_key_file('path/to/ssh/key')

# MySQL Configuration
sql_hostname = 'sql_hostname'
sql_username = 'sql_username'
sql_password = 'sql_password'
sql_main_database = 'db_name'
sql_port = 3306
sql_ip = '1.1.1.1.1'

with SSHTunnelForwarder(
        (ssh_host, ssh_port),
        ssh_username=ssh_user,
        ssh_pkey=mypkey,
        remote_bind_address=(sql_hostname, sql_port)) as tunnel:
    conn = pymysql.connect(host='127.0.0.1', user=sql_username,
            passwd=sql_password, db=sql_main_database,
            port=tunnel.local_bind_port)
    # Execute queries and access data as usual
    conn.close()

これらのライブラリを利用することで、Python は SSH トンネル経由でリモート MySQL サーバーへの安全な接続を確立できます。このアプローチにより、特に機密情報や機密情報を扱う場合のデータ セキュリティが大幅に強化されます。

以上がSSH トンネリングを使用して Python からリモート MySQL サーバーに安全に接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。