MySQL 密码安全

当执行的SQL语句中包含密码的时候(例如执行  CREATE USER,  GRANT ,   SET PASSWORD),或者调用PASSWORD() 函数时,这些语句都可能被MYSQL服务器日志所记录,如此一来任何可以访问日志的人都可以看到这些密码,这是非常危险的。


好在在MySQL 5.6.3之后,上述涉及密码的语句日志会被重写处理,将密码部分用...代替。但是不幸的是,INSERT、UPDATE等语句日志并不会被特殊处理,因此如果对mysql.user表进行INSERT/UPDATE等操作日志仍旧会明文记录密码,所以必须避免此类操作。


刚才说了,5.6.3版本以后会对用户密码语句的日志进行重写处理,但是如果在启动MYSQL的时候使用了  --log-raw选项,那么MYSQL就不会进行密码重写了,所以这个选项不要在生产环境使用,仅作为开发调试诊断时使用。


另一方面就是对日志本身的保护,控制日志文件的访问权限,如果日志不是以文件形式,而是存储在mysql库的日志表中,则要控制对此表的访问权限。主从环境下,slave也会存储密码用于同步master数据,也是存储在文件或者表中,需要同样加以保护。



你可能感兴趣的:(MySQL)