在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';