我正在開發一個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數據庫的用戶,或者是更正確的有數據庫客戶端與單個用戶然後將我的客戶用戶添加到表中(用戶標識,密碼...),在應用程序代碼中定義和管理它們?
那麼,目前我沒有SSH訪問權限,所以運行自定義Python應用服務器端似乎遙不可及。那麼,我想首先我需要聯繫我的託管服務提供商才能檢查。 –