什么是在MySQL客户端级别控制访问的最佳方式?

对生产MySQL实例实施访问控制的最佳方式是什么?

目的不是禁止开发人员访问MySQL,而是执行LDAP身份validation和对数据库的MySQL修改进行审计日志logging。

有没有一种方式的命令行客户端MySQL提供,LDAP身份validation和审计日志logging?

在命令行客户端上放置访问控制是没有意义的。 任何想破坏数据库的人都可以避免使用CLI。

MySQL有能力logging所有的查询以及发出它的用户名,但是在生产系统上启用它并不是一个好主意,因为它会影响性能( 很多磁盘IO是通过将每个查询写入磁盘)。

最后,就LDAP(或其他外部身份validation)而言,MySQL深深地陷入了自己的小小身份validation世界。 这是过去的错误,但我已经接受它只是数据库所做的那些事情之一。

我只是避免让人们在没有成人监督的情况下玩生产数据库。 一个善意的傻瓜可以做一个考虑不周的查询的生产操作损害的数量是相当可观的。 是的,开发者不喜欢它,不,我不在乎。