unix_socket認證插件允許用戶通過本地Unix套接字文件連接到MariaDB的時候使用操作系統的憑證。
通俗的講就是用Linux操作系統的賬號,去登錄MariaDB/MySQL數據庫。
這個功能是在MariaDB 10.4.6版本里添加的,目前也支持在MySQL 8.0.18版本中。
用法:
1、安裝插件
mysql> INSTALL PLUGIN auth_socket SONAME 'auth_socket.so'; Query OK, 0 rows affected (0.01 sec)
2、創建數據庫賬號hechunyang
mysql> CREATE USER 'hechunyang'@'localhost' IDENTIFIED WITH auth_socket; Query OK, 0 rows affected (0.00 sec)
3、創建操作系統賬號hechunyang
# useradd hechunyang
# passwd hechunyang
以hechunyang用戶登錄操作系統
4、登錄MySQL 8.0.18
[root@localhost soft]# su - hechunyang Last login: Fri Nov 8 16:40:53 CST 2019 on pts/0 [hechunyang@localhost ~]$ [hechunyang@localhost ~]$ [hechunyang@localhost ~]$ /usr/local/mysql/bin/mysql -S /tmp/mysql_hcy.sock -uhechunyang -e "select version();" +-----------+ | version() | +-----------+ | 8.0.18 | +-----------+ [hechunyang@localhost ~]$
在此示例中,用戶hechunyang已登錄操作系統並具有完全shell訪問權限。他已經使用操作系統進行了身份驗證,並且他的MySQL帳戶已配置爲使用unix_socket身份驗證插件,因此他無需再次對數據庫進行身份驗證。MySQL接受他的操作系統憑證並允許他連接。