CREATE USER myuser IDENTIFIED VIA unix_socket;
我已经通过和 当然在服务器上设置了我的数据库用户FLUSH PRIVILEGES;
。它运行正常,我可以使用命令连接到数据库mysql
。
然后我以 的身份通过 SSH 进入服务器myuser
,运行sudo su anotheruser
(他没有 mysql 帐户),只是为了测试运行mysql
。我以为它会失败,但我得到了一个 mysql shell。我很困惑,所以运行了,SELECT USER();
结果返回了myuser@localhost
。
这是什么意思?Linux 如何anotheruser
以 身份登录 mysql myuser
?这是unix_socket
一种安全的用户身份验证方式吗?
谢谢
答案1
即使通过 sudo su,它仍然知道你最初是什么用户:
[rubio@craptop ~]$ sudo su - root
[sudo] password for rubio:
[root@craptop ~]# whoami
root
[root@craptop ~]# who am i
rubio pts/1 2016-12-24 22:35 (:0)
如果是“真实”登录用户,anotheruser
它将使用它作为 MySQL 身份验证用户。