2013-06-21 68 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