安全地将Python程序连接到MySQL
我想在我的Python程序中使用MySQLdb连接到MySQL数据库。
我有点担心,因为我需要在.py
文件里放入用户名和密码,这样才能连接到MySQL数据库,还需要放到inno setup里。
难道没有人能找到我的用户名和密码,然后访问我的数据库吗?我该怎么解决这个问题?我是不是可以创建一个权限有限的SQL用户?(我对html/css/MySQL还很陌生)。
1 个回答
3
首先,确保你的MySQL用户名和密码跟你的系统用户名和密码不一样。
接下来,创建一个文件,叫做,比如说,config.py
,并把它放在你的PYTHONPATH目录下:
USER='zzzzzzzz'
PASS='xxxxxxxx'
HOST='yyyyyyyy'
MYDB='wwwwwwww'
然后,修改这个文件的权限,让只有你(和管理员)能读取它。例如,在Unix系统上:
chmod 0600 /path/to/config.py
现在,当你用MySQLdb
写脚本时,你可以这样写:
import config
connection = MySQLdb.connect(
host = config.HOST, user = config.USER,
passwd = config.PASS, db = config.MYDB)
这样你的用户名和密码就不会出现在任何脚本里了。
你也可以把config.py
放在一个加密的目录里,或者放在一个USB闪存驱动器上,这样只有在插入驱动器时才能访问这个文件。