实现对生产 MySQL 实例的访问控制的最佳方法是什么?
目的不是禁止开发人员访问 MySQL,而是对 MySQL 对数据库的修改执行 LDAP 身份验证和审计日志记录。
命令行客户端 mysql 是否提供 LDAP 身份验证和审计日志记录的方法?
答案1
将访问控制放在命令行客户端上是没有意义的;任何想要破坏你的数据库的人都可以轻松地避免使用 CLI。
MySQL 确实有能力记录所有查询以及发出查询的用户名,但在生产系统上启用它并不是一个好主意,因为它会对性能产生不利影响(很多磁盘 IO 是通过将每个查询写入磁盘而产生的)。
最后,就 LDAP(或其他外部身份验证)而言,MySQL 深深陷入了它自己的身份验证小世界中;它曾经让我很烦恼,但我已经接受它只是数据库所做的事情之一。
我只是避免让人们在没有成人监督的情况下使用生产数据库。一个善意的傻瓜用一个考虑不周的查询对生产操作造成的损害是相当大的。是的,开发人员不喜欢它,不,我不在乎。