Python アプリケーションでは、多くの場合、MySQL データベースへのアクセスが必要になります。安全な接続を確立するには、SSH トンネルを使用する手法があります。この記事では、SSH キー ペアを利用して SSH トンネルを作成し、Python を介して MySQL 接続を容易にする方法について説明します。
次の Python コードを考えてみましょう。
import MySQLdb db = MySQLdb.connect(host="sql.domain.com", user="dev", passwd="*******", db="appdb")
上記のコードは直接接続を確立します。 MySQL サーバーへの接続では、セキュリティを強化するために SSH トンネルが必要になるシナリオが考えられます。 SSH トンネルは接続を暗号化し、通信用の安全なチャネルを提供します。
SSH トンネルを設定し、Python を使用して MySQL に接続するには、次の手順に従います。
これらの手順を示すコード スニペットの例を次に示します。
import pymysql import paramiko import pandas as pd from paramiko import SSHClient from sshtunnel import SSHTunnelForwarder from os.path import expanduser # SSH Parameters home = expanduser('~') mypkey = paramiko.RSAKey.from_private_key_file(home + pkeyfilepath) ssh_host = 'ssh_hostname' ssh_user = 'ssh_username' ssh_port = 22 # MySQL Parameters sql_hostname = 'sql_hostname' sql_username = 'sql_username' sql_password = 'sql_password' sql_main_database = 'db_name' sql_port = 3306 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) # Perform database operations here... conn.close()
これらの手法を実装すると、Python の SSH トンネル経由で MySQL サーバーに安全に接続できます。このアプローチにより、データの機密性と整合性が確保され、高度なセキュリティ対策を必要とするアプリケーションに適しています。
以上がPython で SSH トンネリング経由で MySQL に安全に接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。