2013-06-21 114 views
1

我有一些我正在使用MYSQL數據庫進行錯誤記錄和設置存儲的腳本,並且我想要一種集中和安全地存儲MYSQL憑證以便在不同位置使用的方法在腳本中,但我不想保持連接打開(在腳本的開始處打開一次)。有沒有一個最佳做法或做一個'pythonic'的方式?Python:Mysql憑證的中央存儲

回答

0
class MyDB: 
    def __init__(sql_server,user,password): 
      self.server = sql_server 
      self.user = user 
      self.password = password 

     def __getattr__(self,key): 
      conn = MYSQLDB.connect(self.server,self.user,self.password) 
      val = getattr(conn,key) 
      conn.close() 
      return val 

settings.py

db = MyDb(my_server,my_user,my_pass) 

other_script.py

from settings import db 
db.whatever() 
#or 
import settings 
settings.db.do_something() 

也許類似的東西......,只是繞過

該對象的問題是,你仍然會需要將程序中的服務器和憑據存儲在某處。有一些方法來掩蓋它,但沒有一個是好的。

A.使用簡單的編碼一樣的base64(不是真的加密,只是編碼)

B.使用某種加密庫。這是加密的,並且依賴於更難以破解的方法。不幸的是,您仍然需要嵌入程序中的密鑰(請參閱A或B以「加密」密鑰)

+0

這可以存儲在單獨的文件中以供多個腳本參考嗎?我將如何參考它? – Butters

+0

看到編輯應該爲你想要的工作 –

+0

我認爲這可能會工作。讓我玩幾分鐘,給別人幾分鐘的回答。 – Butters