我们目前使用MySQL 5.7并通过mysql-config-editor存储密码。它将登录路径存储在加密文件.mylogin.cnf
中。
MariaDB不支持此功能(and considers it a bad idea)。那么MariaDB的做法是什么?
PostgreSQL为此目的提供~/.pgpass
。
如您所描述的那样存储密码与允许从存储密码的主机的IP进行无密码登录没有什么不同 - 实际上,在支持SO_PEERCRED的主机上使用无密码登录后者更安全。
然而,即使这仍然远远没有关于身份验证的最佳实践。密码应由用户/管理员输入。关于解决服务帐户(例如Web应用程序)存储数据库密码的鸡/蛋问题的最佳方法的互联网上有很多讨论,但对于作为用户的真实用户,密码应该由用户键入并且应该被保存在安全的地方。
安全的地方可能是锁定的抽屉,电话应用程序,密码安全应用程序(如PasswordSafe,Teampass等)或完整的企业特权访问管理解决方案,如CyberArk或Osirium)