私はPython3/tkinterアプリケーションを開発していますが、リモートMySQLサーバをベースにしたデータベース機能が必要です。私はSQLalchemyを見つけました。リモートアクセスとユーザー認証に関して、ベストプラクティスが何であるかを理解しようとしています。ユーザー名とパスワードを要求するクライアントアプリケーションがあり、リモートデータベースにデータを取得、挿入、更新します。SQLalchemyを使用してMySQLデータベースに安全に接続する方法は?
今、私はいくつかのチュートリアルの手順に従って、明確なボードを始めています:
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('mysql+pymysql://DB_USER:[email protected]_URL:PORT/DATABASENAME', pool_recycle=3600, echo=True)
Base = declarative_base()
connection = engine.connect()
class Process(Base):
__tablename__ = "processes"
id = Column(Integer, primary_key=True)
name = Column(String)
Base.metadata.create_all(engine)
が、これはそれを行うための正しい方法であると仮定すると、このコードについての私の最初の質問は次のとおりです。
- 暗号化されていないユーザーとパスワードをインターネット経由で送信することで、セキュリティ上の問題が発生することはありませんか?パスワードを盗むのを防ぐために何らかの措置を取る必要がありますか?もしそうなら、私は代わりに何をすべきですか?
私が今持っている他の質問は、ユーザーについてです:
- 各アプリケーションのユーザは、異なるMySQLデータベースのユーザーに対応し、またはそれは、単一のユーザーとデータベースクライアントを持つことがより正確であるべきクライアントのユーザーをテーブル(ユーザーID、パスワードなど)に追加し、アプリケーションコードで定義して管理しますか?
現在、私はSSHアクセス権を持っていないため、カスタムPythonアプリケーションサーバー側を実行すると手の届かないようです。さて、私はまずそれを確認するために私のホスティングプロバイダに連絡する必要がありますね。 –