MariaDB:使用unix套接字插件创建并授予新用户(无密码)

MariaDB:使用unix套接字插件创建并授予新用户(无密码)

我刚刚在 Kubuntu 15.10 上安装了 MariaDB。我可以通过从操作系统验证用户身份的插件以 root 用户身份登录。 (这对我来说是新的,所以我正在学习它,而不是像大多数教程似乎建议的那样删除插件身份验证。)

现在我想创建一个非root用户并授予该用户所有权限,并允许用户无需密码(仅使用插件)即可登录mysql(在本地主机上)。我该怎么做?我还需要给用户一个密码吗?

答案1

找到了答案。我需要的部分是“IDENTIFIED VIA unix_socket”,如下所示:

MariaDB [(none)]> CREATE USER serg IDENTIFIED VIA unix_socket;
MariaDB [(none)]> GRANT ALL PRIVILEGES on mydatabase.* to 'serg'@'localhost';

MariaDB [(none)]> select user, host, password, plugin from mysql.user;
+--------------+-----------+----------+-------------+
| user         | host      | password | plugin      |
+--------------+-----------+----------+-------------+
| root         | localhost |          | unix_socket |
| root         | mitra     |          | unix_socket |
| root         | 127.0.0.1 |          | unix_socket |
| root         | ::1       |          | unix_socket |
| serg         | localhost |          | unix_socket |
+--------------+-----------+----------+-------------+
5 rows in set (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;

然后在外壳中:

sudo service mysql restart

要使用用户“serg”登录,请勿使用 sudo。只需使用mysql -u serg.

答案2

您可以为该用户分配密码并在 my.cnf 文件中进行输入。

  • 授予 mydatabas 的所有权限。发送至由“密码”标识的 user@localhost ;*

编辑我的cnf

[mysql]

用户=用户

密码=密码

[mysql管理]

用户=用户

密码=密码

sudo service mysql restart

mysql -h localhost -u user

答案3

根据文档:

如果SQL_MODE没有设置NO_AUTO_CREATE_USER,那么您还可以通过GRANT创建用户帐户。例如:

所以这就足够了:

GRANT SELECT ON db.* TO username@hostname IDENTIFIED VIA unix_socket;

相关内容