我们为用户运行了几十个不同的MySQL服务器。它们使用MySQL的免费/开源版本,而不是商业版本。在这些服务器上管理帐户密码很麻烦。
是否有任何插件可以使我们使用LDAP来帮助管理MySQL特权?至少,我们希望从LDAP服务器获取一些用户名和密码。
我们正在使用MySQL 5.1和5.5。如果要实现此功能,我们可能愿意升级到MySQL 5.6。
我们希望任何工具都基于CLI,而不需要GUI或Web界面。
我们为用户运行了几十个不同的MySQL服务器。它们使用MySQL的免费/开源版本,而不是商业版本。在这些服务器上管理帐户密码很麻烦。
是否有任何插件可以使我们使用LDAP来帮助管理MySQL特权?至少,我们希望从LDAP服务器获取一些用户名和密码。
我们正在使用MySQL 5.1和5.5。如果要实现此功能,我们可能愿意升级到MySQL 5.6。
我们希望任何工具都基于CLI,而不需要GUI或Web界面。
Answers:
企业MySQL(您向Oracle支付了使用许可的版本)具有允许进行LDAP身份验证的PAM模块:https : //dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html
MariaDB(由Monty开发的MySQL的二进制兼容版本)具有一个可用的开源PAM模块:http : //kb.askmonty.org/en/pam-authentication-plugin/
我也没有亲身经历-我仅以我听说过但未经测试或使用过的功能来介绍它们。
Mysql代理可以使用角色为您启用此功能。可以在以下位置找到更多详细信息: https : //stackoverflow.com/questions/1329963/using-ldap-ad-for-mysql-authentication和此处:http : //jan.kneschke.de/2009/6/25/mysql -代理角色/
我已经在自己的博客中发布了MySQL LDAP认证插件的完整示例(及其源代码)。
http://nafiux.com/blog/2012/08/11/mysql-ldap-authentication-plugin/
您可以将安装迁移到Percona Server,并使用以下两种方法之一通过PAM将MySQL连接到LDAP:
完整的PAM插件,名为auth_pam。该插件使用dialog.so。它完全支持PAM协议,并且客户端和服务器之间可以进行任意通信。
与Oracle兼容的PAM,称为auth_pam_compat。该插件使用mysql_clear_password,它是Oracle MySQL客户端的一部分。它还有一些限制,例如,它仅支持一个密码输入。您必须使用“ -p”选项才能将密码传递给auth_pam_compat。
http://www.percona.com/doc/percona-pam-for-mysql/intro.html
我们正在使用,auth_pam_compat
但您必须记住客户端必须支持Cleartext客户端身份验证插件
现在,到2017年底,我可以提出以下建议:
https://www.percona.com/doc/percona-server/LATEST/management/pam_plugin.html
Percona PAM身份验证插件是MySQL身份验证插件的免费开源实现。该插件充当MySQL服务器,MySQL客户端和PAM堆栈之间的中介。服务器插件从PAM堆栈请求身份验证,将来自PAM堆栈的所有请求和消息通过电线转发到客户端(以明文形式),并读取对PAM堆栈的所有答复。
它未经测试,并且我从未使用过它,我想建议一下它,因为它可能很好。