只允许指定的用户使用mysql用户

目前任何系统用户都可以运行:

systemuser$ mysql -u mysqluser -p 

(假设他知道密码)。

有没有办法拒绝mysql(cli)使用特定的mysql用户?

例如。

 systemuser$ mysql -u mysqluser -p'validmypass' (success) otheruser$ mysql -u mysqluser -p'validpass' (you don't have access) otheruser$ mysql -u anotheruser -p'validpass' (success) 

(即只是特定的系统用户可以使用特定的mysql用户)。

我不认为,这是一个好主意。 mysqld进程正在某个端口(3306)上监听networking,因此防止特定的系统用户使用特定的mysql用户名连接到特定的端口可能会很困难。 为什么要给一些人一个mysql的密码,如果你不想让他们login? 你想用这样的设置实现什么?

但是,您可以:

  1. 拒绝一些本地用户使用mysql命令(在这种情况下,他们可以使用其他软件login)。 查看详情: 防止用户运行某些程序 。 最简单的方法是更改​​/ usr / bin / mysql的文件权限,但用户仍然可以在系统上运行其他的mysql副本。 即使你会阻止这个,他们将能够使用其他软件连接。

  2. 拒绝一些本地用户连接到mysql端口。 有关详细信息,请参阅此问题: 如何阻止对本地用户访问本地端口?

标准mysql auth中的用户由用户名和主机部分(username @ host)组成,并由密码保护。 而已。 如果你想使用标准的MySQL用户authentication,你不能完全做到这一点。

在MySQL中有一些操作系统authentication的方法,但是这是有据可查的。 例如PAMauthentication: http : //dev.mysql.com/doc/refman/5.6/en/pam-authentication-plugin.html 。

另一种方式(MySQL 5.6+)可能是更改密码,所以任何用户都不知道,并使用MySQLconfiguration编辑器http://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor .html创build一个特定用户可以访问的login文件,或者在他们的主目录中。 这样只有某些用户可以看到configuration