mysql密码认证插件,(四)MariaDB密码验证插件使用示例

示例介绍密码验证插件 Simple Password Check Plugin (MariaDB 10.1.2.加入)——(顺带简单介绍一些 DBeaver 的使用)

之前我们在设定 root 密码时,使用的是简单密码“root”,虽然后续连接时,要加 sudo,但是该账号密码依旧可用。

以 mariadb-server 现有的状态,新建一个账号:

再输入账号信息:

然后点击右下角的保存,会有执行语句窗口,语句如下

CREATE USER 'test'@'%';

ALTER USER 'test'@'%'

IDENTIFIED BY '123456' ;

GRANT Create user ON *.* TO 'test'@'%';

GRANT Event ON *.* TO 'test'@'%';

GRANT File ON *.* TO 'test'@'%';

GRANT Process ON *.* TO 'test'@'%';

GRANT Reload ON *.* TO 'test'@'%';

GRANT Replication client ON *.* TO 'test'@'%';

GRANT Replication slave ON *.* TO 'test'@'%';

GRANT Show databases ON *.* TO 'test'@'%';

GRANT Shutdown ON *.* TO 'test'@'%';

GRANT Super ON *.* TO 'test'@'%';

GRANT Create tablespace ON *.* TO 'test'@'%';

GRANT Usage ON *.* TO 'test'@'%';

FLUSH PRIVILEGES;

再点击执行,可见保存成功。test 账号新建成功。

从代码上,可以看到账号 test 的密码是 123456,但是这个账号的权限是 check all 选择的所有,相当大的权限。所以这个密码不是很安全。

事实上,这种权责很大、很重要的账号,其密码就不应该运行设定得如此简单,但现在的默认情况下,MariaDB 是可以这样设定密码的。

这样,可以使用simple_password_check 插件,避免设定账号的密码时过于简单。它可以检查密码是否至少包含一定数量的特定类型的字符。

首次安装时,密码必须至少为八个字符,并且至少需要一个数字,一个大写字母,一个小写字母以及一个既不是数字也不是字母的字符。

安装:

INSTALL SONAME 'simple_password_check';

INSTALL PLUGIN simple_password_check;

注意一个是 library,一个是 name,一个有引号,一个没有。

安装完使用select * from mysql.plugin;查看是否安装成功(不出意外都成功的)。

注意:插件还可以在配置文件中启用。

找到 MariaDB 的配置文件,默认应该是文件/etc/mysql/my.cnf。

打开文件并在末端添加以下红框参数

[mariadb]

plugin_load_add = simple_password_check

修改完配置文件,要重启 MariaDB 服务,例如终端执行sudo service mariadb restart。

重启完之后,在 dbeaver 中或 mysql 的命令窗口查看 simple_password 的相关参数,就可以看到以下信息:

注意:

在配置文件中添加的插件配置,select * from mysql.plugin;是查询不到的。

不用该插件了,从配置文件中删除即可,当然也要重启生效。

(后续插件的安装卸载,还是使用指令,不去修改配置文件。)

从上图参数设定也可看到,simple_password_check 要求密码必须至少为八个字符,并且至少需要一个数字,一个大写字母,一个小写字母以及一个既不是数字也不是字母的字符。

可以测试:

创建账号 test2,密码 123456

GRANT all ON *.* TO 'test2'@'%' identified by '123456;

改成符合要求的密码例如 P@ssw0rd 就可以了。

GRANT all ON *.* TO 'test2'@'%' identified by 'P@ssw0rd';

当然,这些限制是可以修改的

例如,原本是数字至少 1 位,现在改成 2 位

SET GLOBAL simple_password_check_digits=2

使用show variables like 'simple_password%';查看异动。

之前的密码只有 1 个数字,已经不符合要求了。

同理,其它参数也是可以修改的,指令类似(n 正整数):

SET GLOBAL simple_password_check_letters_same_case=n;

SET GLOBAL simple_password_check_minimal_length=n;

SET GLOBAL simple_password_check_other_characters=n;

说明:

SET GLOBAL 操作修改变量,重启服务之后可能就会被重置,需要永久生效,还是放到配置文件中好些。

后续所有提到的 SET GLOBAL,大部分都会有对应的配置文件修改设定。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当需要修改Mariadb/MySQL的root密码时,可以通过以下步骤进行操作: 1. 打开终端,以root用户登录到Linux系统。 2. 停止Mariadb/MySQL服务。在终端中输入以下命令: ``` service mariadb stop ``` 或 ``` service mysql stop ``` 3. 启动Mariadb/MySQL服务,并跳过授权检查。在终端中输入以下命令: ``` mysqld_safe --skip-grant-tables & ``` 4. 进入MariaDB/MySQL数据库。在终端中输入以下命令: ``` mysql -u root ``` 5. 切换到mysql数据库。在数据库提示符中输入以下命令: ``` use mysql; ``` 6. 更新root用户的密码。在数据库提示符中输入以下命令: ``` update user set password=PASSWORD('新密码') where User='root'; ``` (请将'新密码'替换为您希望设置的新密码) 7. 刷新权限表以使更改生效。在数据库提示符中输入以下命令: ``` flush privileges; ``` 8. 退出MariaDB/MySQL数据库。在数据库提示符中输入以下命令: ``` exit; ``` 9. 停止Mariadb/MySQL服务。在终端中输入以下命令: ``` service mariadb stop ``` 或 ``` service mysql stop ``` 10. 启动Mariadb/MySQL服务。在终端中输入以下命令: ``` service mariadb start ``` 或 ``` service mysql start ``` 11. 使用密码登录Mariadb/MySQL。在终端中输入以下命令: ``` mysql -u root -p ``` (在提示符中输入新密码) 这样,您应该能够成功修改Mariadb/MySQL的root密码。如果在进行上述步骤时遇到错误1064,请确保输入的命令语法正确,每个命令以分号结尾。此外,还可以检查是否在操作时具有足够的权限来修改密码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值