https://www.sohu.com/a/389467897_411876 mysql> INSTALL PLUGIN auth_socket SONAME 'auth_socket.so'; Query OK, 0 rows affected (0.01 sec) ② 创建数据库账号hechunyang mysql> CREATE USER 'hechunyang'@'localhost' IDENTIFIED WITH auth_socket; Query OK, 0 rows affected (0.00 sec) ③ 创建操作系统账号hechunyang # useradd hechunyang # passwd hechunyang 以hechunyang用户登录操作系统。 ④ 登录MySQL 8.0.18 [root@localhost soft]# su - hechunyang Last login: Fri Nov 8 16:40:53 CST 2019>[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接受他的操作系统凭证并允许他连接。 2)MariaDB 10.4.10使用方法 ① 创建数据库账号hechunyang MariaDB [(none)]> GRANT ALL ON *.* TO 'hechunyang' IDENTIFIED VIA unix_socket; Query OK, 0 rows affected (0.001 sec) 后续操作和MySQL 8.0.18一样。 https://blog.csdn.net/qq_34625397/article/details/113642122 知不觉MariaDB已经更新到10.5.8了,它较10.2和10.3做出的变化还是蛮大的 在mariadb10.5当中,将用户身份验证做了更改 所有用户帐户,密码和全局特权都存储在mysql.global_priv表中。该mysql.user表仍然存在,并且具有与以前完全相同的列集,但是现在它是一个引用该mysql.global_priv表的视图。 其次,是unix_socket 它可以让用户通过本地socket登陆而无需密码,据介绍,这种加密非常安全可靠,但我暂时用不上 如果你正常安装,那么mariadb会执行下面的语句,生成两个在服务器不需要密码就能登陆的用户-root@localhost 和mysql@localhost CREATE USER root@localhost IDENTIFIED VIA unix_socket OR mysql_native_password USING 'invalid' CREATE USER mysql@localhost IDENTIFIED VIA unix_socket OR mysql_native_password USING 'invalid' 使用之前的验证方式 mysql_install_db 时指定--auth-root-authentication-method 或者在配置文件中添加 [mysql_install_db] auth_root_authentication_method=normal 1、用户创建 之前是可以支持Insert方式创建,但是现在只能通过 Create 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; -- 此处password是明文,不需要用password('密码')来标识 2、密码修改 之前是可以通过Update方式修改,现在只能通过Set方式来修改 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); 如果是当前登陆用户用: SET PASSWORD = PASSWORD("newpassword"); 3、授权 这个命令感觉没有变化,还是原来的命令:GRANT privileges ON databasename.tablename TO 'username'@'host' 完全权限 GRANT ALL ON *.* TO 'pig'@'%'; 4、收回权限 这个也没怎么明显变化,REVOKE privilege ON databasename.tablename FROM 'username'@'host'; ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/qq_34625397/article/details/113642122 |
|