iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL的密码策略
  • 934
分享到

MySQL的密码策略

mysql数据库 2023-09-04 12:09:49 934人浏览 八月长安
摘要

文章目录 一、配置远程主机可登录mysql数据库二、MySQL的密码复杂度5.7的密码复杂度是由validate_password_policy参数控制8.0的密码复杂度是由validate_

文章目录


一、配置远程主机可登录Mysql数据库

用户可从哪台主机连接mysql数据库是由mysql.user表中的host值来确定的。

默认情况下host值都为localhost,如用户需要从任何主机都可连接mysql数据库,可将host值置为%,host值也可为固定IP地址,表示该用户只能从该IP地址所属主机登录连接mysql。mysql> select user,host from mysql.user;+------------------+-----------+| user             | host      |+------------------+-----------+| mysql.infoschema | localhost || mysql.session    | localhost || mysql.sys        | localhost || root             | localhost |+------------------+-----------+

将user用户的host值设置为%

mysql> update mysql.user set host='%' where user='root';Query OK, 1 row affected (0.01 sec)Rows matched: 1  Changed: 1  Warnings: 0

刷新权限

mysql> flush privileges;  Query OK, 0 rows affected (0.01 sec)

二、MySQL的密码复杂度

MySQL 系统自带有 validate_passWord 插件,此插件可以验证密码强度,未达到规定强度的密码则不允许被设置。MySQL 5.7版本默认是不启用该插件的,8.0 版本默认情况下启用该插件。

5.7的密码复杂度是由validate_password_policy参数控制

mysql> show variables like'validate_password%';Empty set (0.00 sec)--查询参数后发现参数不存在,我们需要安装一下validate_password 插件。

安装插件

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';Query OK, 0 rows affected (0.05 sec)--插件安装完成后,即可看到相关参数。mysql> show variables like'validate_password%';+--------------------------------------+--------+| Variable_name                        | Value  |+--------------------------------------+--------+| validate_password_check_user_name    | OFF    || validate_password_dictionary_file    |        || validate_password_length             | 8      || validate_password_mixed_case_count   | 1      || validate_password_number_count       | 1      || validate_password_policy             | MEDIUM || validate_password_special_char_count | 1      |+--------------------------------------+--------+7 rows in set (0.00 sec)--安装插件后密码强度默认值是MEDIUM,不影响我们现有弱密码用户登录数据库

8.0的密码复杂度是由validate_password.policy参数控制

mysql> show variables like'validate_password%';+--------------------------------------+--------+| Variable_name                        | Value  |+--------------------------------------+--------+| validate_password.check_user_name    | ON     || validate_password.dictionary_file    |        || validate_password.length             | 8      || validate_password.mixed_case_count   | 1      || validate_password.number_count       | 1      || validate_password.policy             | MEDIUM || validate_password.special_char_count | 1      |+--------------------------------------+--------+7 rows in set (0.00 sec)

validate_password 插件参数解释:

1、validate_password_policy代表的密码策略,默认是MEDIUM 可配置的值有以下:0 or LOW 仅需需符合密码长度(由参数validate_password_length指定)1 or MEDIUM 满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊字符2 or STRONG 满足MEDIUM策略,同时密码不能存在字典文件(dictionary file)中2、validate_password_dictionary_file用于配置密码的字典文件,当validate_password_policy设置为STRONG时可以配置密码字典文件,字典文件中存在的密码不得使用。3、validate_password_length用来设置密码的最小长度,默认值是84、validate_password_mixed_case_count当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少同时拥有的小写和大写字母的数量,默认是1最小是0;默认是至少拥有一个小写和一个大写字母。5、validate_password_number_count当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少拥有的数字的个数,默认1最小是06、validate_password_special_char_count当validate_password_policy设置为MEDIUM或者STRONG时,密码中至少拥有的特殊字符的个数,默认1最小是0

三、修改密码过期时间

mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |+------------------+-----------+------------------+-------------------+-----------------------+----------------+| root             | %         | N                |              NULL | 2021-12-30 11:28:07   | N              || mysql.infoschema | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.session    | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.sys        | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              |+------------------+-----------+------------------+-------------------+-----------------------+----------------+4 rows in set (0.00 sec)--用户密码过期状态由password_expired控制,过期时间由password_lifetime控制。

使test用户密码立即过期

mysql> create user test identified by'Huawei12#$';Query OK, 0 rows affected (0.05 sec)mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |+------------------+-----------+------------------+-------------------+-----------------------+----------------+| root             | %         | N                |              NULL | 2021-12-30 11:28:07   | N              || test             | %         | N                |              NULL | 2022-05-16 22:52:51   | N              || mysql.infoschema | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.session    | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.sys        | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              |+------------------+-----------+------------------+-------------------+-----------------------+----------------+5 rows in set (0.00 sec)mysql> alter user 'test'@'%' password expire;Query OK, 0 rows affected (0.01 sec)mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |+------------------+-----------+------------------+-------------------+-----------------------+----------------+| root             | %         | N                |              NULL | 2021-12-30 11:28:07   | N              || test             | %         | Y                |              NULL | 2022-05-16 22:52:51   | N              || mysql.infoschema | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.session    | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.sys        | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              |+------------------+-----------+------------------+-------------------+-----------------------+----------------+5 rows in set (0.00 sec--test用户的password_expired列值立即变为了Y,重新用test用户登录会提示你修改密码。

修改账号密码永不过期

mysql> alter user 'test'@'%' password expire never;Query OK, 0 rows affected (0.15 sec)mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |+------------------+-----------+------------------+-------------------+-----------------------+----------------+| root             | %         | N                |              NULL | 2021-12-30 11:28:07   | N              || test             | %         | N                |                 0 | 2022-05-16 22:57:55   | N              || mysql.infoschema | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.session    | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.sys        | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              |+------------------+-----------+------------------+-------------------+-----------------------+----------------+5 rows in set (0.01 sec)--test用户的password_lifetime列值立即变为了0。

设置账号密码90天过期

mysql> ALTER USER 'test'@'%' PASSWORD EXPIRE INTERVAL 90 DAY;Query OK, 0 rows affected (0.01 sec)mysql>  select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |+------------------+-----------+------------------+-------------------+-----------------------+----------------+| root             | %         | N                |              NULL | 2021-12-30 11:28:07   | N              || test             | %         | N                |                90 | 2022-05-16 22:57:55   | N              || mysql.infoschema | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.session    | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.sys        | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              |+------------------+-----------+------------------+-------------------+-----------------------+----------------+5 rows in set (0.00 sec)

将账号test使用默认的密码过期全局策略

mysql> ALTER USER 'test'@'%' PASSWORD EXPIRE DEFAULT;Query OK, 0 rows affected (0.06 sec)mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |+------------------+-----------+------------------+-------------------+-----------------------+----------------+| root             | %         | N                |              NULL | 2021-12-30 11:28:07   | N              || test             | %         | N                |              NULL | 2022-05-16 22:57:55   | N              || mysql.infoschema | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.session    | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              || mysql.sys        | localhost | N                |              NULL | 2021-12-30 11:14:57   | Y              |+------------------+-----------+------------------+-------------------+-----------------------+----------------+5 rows in set (0.00 sec)

设置密码全局过期策略

mysql> show variables like 'default_password_lifetime';+---------------------------+-------+| Variable_name             | Value |+---------------------------+-------+| default_password_lifetime | 0     |+---------------------------+-------+1 row in set (0.00 sec)--默认为0,表示密码不过期。mysql> SET GLOBAL default_password_lifetime = 90;Query OK, 0 rows affected (0.00 sec)--设置密码90天过期mysql> show variables like 'default_password_lifetime';+---------------------------+-------+| Variable_name             | Value |+---------------------------+-------+| default_password_lifetime | 90    |+---------------------------+-------+1 row in set (0.01 sec)# 写入配置文件使得重启生效[mysqld]default_password_lifetime = 90

四、修改root密码

修改密码有很多种方法,这里记录最简单的一种。

--5.7和8.0均可用这种方式修改。mysql> alter user root@'%' identified with mysql_native_password by'Huawei12#$';

这里要注意一个问题,我们这修改的是root@'%'这个用户的密码,也就是修改的root远程登录时候的密码,本底登录也就是root@'localhost’的密码并没有修改。

--用户表里面有root@'%'和root@'localhost',user表的user和host列是双主键。mysql> select user,host from mysql.user;+---------------+-----------+| user          | host      |+---------------+-----------+| root          | %         || mysql.session | localhost || mysql.sys     | localhost || root          | localhost |+---------------+-----------+4 rows in set (0.00 sec)--(root,%),表示可以远程登录,并且是除服务器外的其他任何终端,%表示任意IP都可登录。--(root,localhost),  表示可以本地登录,即可以在服务器上登陆,localhost则只允许本地登录。--(root,127.0.0.1 ),表示可以本机登陆,即可以在服务器上登陆

忘记root密码

--MySQL 5.7.6 and later#vi /etc/my.cnfbasedir=/usr/local/mysqldatadir=/usr/local/mysql/dataskip-grant-tables--在my.cnf配置文件内添加skip-grant-tables跳过权限验证#service mysqld restart           --重启mysql服务--直接输入mysql登录[root@hisdb etc]# mysqlWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 7Server version: 8.0.27 MySQL CommUnity Server - GPLCopyright (c) 2000, 2021, oracle and/or its affiliates.Oracle is a reGIStered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>--开始修改root密码

来源地址:https://blog.csdn.net/zongzizz/article/details/129953066

您可能感兴趣的文档:

--结束END--

本文标题: MySQL的密码策略

本文链接: https://www.lsjlt.com/news/393563.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL的密码策略
    文章目录 一、配置远程主机可登录mysql数据库二、MySQL的密码复杂度5.7的密码复杂度是由validate_password_policy参数控制8.0的密码复杂度是由validate_...
    99+
    2023-09-04
    mysql 数据库
  • MySQL密码策略有哪些
    本篇内容介绍了“MySQL密码策略有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1)  临...
    99+
    2024-04-02
  • MySQL 8.0 密码策略修改
    首次登录mysql,需要修改原始密码。 mysql> show databases;ERROR 1820 (HY000): You must reset your password using ALT...
    99+
    2023-09-12
    mysql
  • MySQL 5.7密码安全策略是什么
    小编给大家分享一下MySQL 5.7密码安全策略是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!查看现有的密码策略mysql> SHOW VARIABLES LIKE '...
    99+
    2024-04-02
  • MySQL8.0密码策略是什么
    这篇文章主要讲解了“MySQL8.0密码策略是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL8.0密码策略是什么”吧!从8.0.4开始mysq...
    99+
    2024-04-02
  • win7密码策略怎么更改
    这篇文章主要介绍“win7密码策略怎么更改”,在日常操作中,相信很多人在win7密码策略怎么更改问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win7密码策略怎么更改”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-01
  • oracle怎么关闭密码策略
    要关闭Oracle的密码策略,可以按照以下步骤进行操作:1. 以sysdba权限登录到Oracle数据库。2. 运行以下SQL语句来...
    99+
    2023-08-24
    oracle
  • ORACLE11g密码安全与过期策略
    数据库安全问题一直是人们关注的焦点之一,我们知道一个企业或者机构的数据库如果遭到黑客的攻击,而这些数据库又保存着非常重要的数据,象银行、通信等数据库,后果将不堪设想。oracle数据库使用了多种手段来...
    99+
    2024-04-02
  • HANA密码策略更改的示例分析
    这篇文章给大家分享的是有关HANA密码策略更改的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   近些日子hana数据库出现密码...
    99+
    2024-04-02
  • Linux账号密码安全策略设置
    前言 随着云计算厂商的兴起,云资源如ECS不再只有企业或者公司才会使用,普通人也可以自己买一台ECS来搭建自己的应用或者网站。虽然云计算厂商帮我们做了很多安全相关的工作,但并不代表我们的机器资源就绝对...
    99+
    2023-10-05
    linux 运维 服务器
  • Linux系统如何设置密码策略
    本文将为大家详细介绍“Linux系统如何设置密码策略”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统如何设置密码策略”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获...
    99+
    2023-06-28
  • 提升Oracle用户密码安全性的策略
    环境:Oracle 11.2.0.4 客户需求:主要背景是数据库中有很多业务用户名,且由于部分用户缺乏安全意识,甚至直接将自己的密码设置为和用户名一样,目前客户期望密码设置不要过于简单,最起码别和用户名一...
    99+
    2024-04-02
  • Oracle数据库加固密码策略的方法
    Oracle数据库加固密码策略的方法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Oracle默认提供了一个密码策略的sql执...
    99+
    2024-04-02
  • 等保三级安全加固,服务器三权分立设置,mysql密码策略登录策略
    安全计算环境 1)数据库、服务器未配置口令复杂度策略。 OS 系统编辑文件/etc/pam.d/system-auth,是否存在如下配置: password requisite ...
    99+
    2023-09-07
    mysql 服务器 安全 运维 linux
  • Linux系统中如何设置密码策略
    这篇文章给大家分享的是有关Linux系统中如何设置密码策略的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。准备工作安装 PAM 的 cracklib 模块,cracklib 能提供额外的密码检查能力。Debian、...
    99+
    2023-06-28
  • Ubuntu密码复杂度策略如何设置
    这篇文章主要讲解了“Ubuntu密码复杂度策略如何设置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ubuntu密码复杂度策略如何设置”吧!一、修改密码1、修改普通用户密码passwd先输入...
    99+
    2023-07-04
  • linux密码复杂度策略怎么配置
    要配置Linux密码复杂度策略,您可以按照以下步骤进行操作: 打开`/etc/login.defs`文件: sudo vi /e...
    99+
    2023-10-25
    linux
  • sqlserver密码复杂度策略如何设置
    在SQL Server中,可以通过以下步骤设置密码复杂度策略: 打开SQL Server Management Studio并连...
    99+
    2024-04-09
    sqlserver
  • 如何修改oracle数据库密码的过期策略
    本篇文章为大家展示了如何修改oracle数据库密码的过期策略,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.查询数据库用户何时过期登陆数据库PL/SQL工具,输入...
    99+
    2024-04-02
  • Linux系统中怎么设置复杂密码策略
    Linux系统中怎么设置复杂密码策略,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、准备工作安装 PAM 的 cracklib 模块,cracklib 能提供额外的密码检...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作