在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

如何设置安全的数据库密码

124次阅读
没有评论

共计 8250 个字符,预计需要花费 21 分钟才能阅读完成。

本篇内容介绍了“如何设置安全的数据库密码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. 密码复杂度策略设置

MySQL 系统自带有 validate_password 插件,此插件可以验证密码强度,未达到规定强度的密码则不允许被设置。MySQL 5.7 及  8.0 版本默认情况下貌似都不启用该插件,这也使得我们可以随意设置密码,比如设置为  123、123456 等。如果我们想从根源上规范密码强度,可以启用该插件,下面一起来看下如何通过此插件来设置密码复杂度策略。

1)查看是否已安装此插件

进入 MySQL 命令行,通过 show plugins 或者查看 validate_password   相关参数可以判断是否已安装此插件。若没有相关参数则代表未安装此插件

#  安装前检查   为空则说明未安装此插件  mysql  show variables like  validate%  Empty set (0.00 sec)

2)安装 validate_password 插件

#  通过  INSTALL PLUGIN  命令可安装此插件  #  每个平台的文件名后缀都不同   对于  Unix  和类  Unix  系统,为.so,对于  Windows  为.dll mysql  INSTALL PLUGIN validate_password SONAME  validate_password.so  Query OK, 0 rows affected, 1 warning (0.28 sec) #  查看  validate_password  相关参数  mysql  show variables like  validate%  +--------------------------------------+--------+ | 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)

3)密码强度相关参数解释

安装 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

用来设置密码的最小长度,默认值是 8

4、validate_password_mixed_case_count

当 validate_password_policy 设置为 MEDIUM 或者 STRONG 时,密码中至少同时拥有的小写和大写字母的数量,默认是 1 最小是 0; 默认是至少拥有一个小写和一个大写字母。

5、validate_password_number_count

当 validate_password_policy 设置为 MEDIUM 或者 STRONG 时,密码中至少拥有的数字的个数,默认 1 最小是 0

6、validate_password_special_char_count

当 validate_password_policy 设置为 MEDIUM 或者 STRONG 时,密码中至少拥有的特殊字符的个数,默认 1 最小是 0

4)密码复杂度策略具体设置

学习完以上参数,我们就可以根据自身情况来具体设置密码复杂度策略了,比如我想让密码至少 10 位且包含大小写字母、数字、特殊字符,则可以这样设置。

#  设置密码长度至少 10 位  mysql  set global validate_password_length = 10; Query OK, 0 rows affected (0.00 sec) mysql  show variables like  validate%  +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password_check_user_name | ON | | validate_password_dictionary_file | | | validate_password_length | 10 | | 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) #  若想永久生效,建议将以下参数写入配置文件  [mysqld] plugin-load = validate_password.so validate_password_length = 10 validate_password_policy = 1 validate-password = FORCE_PLUS_PERMANENT

5)测试密码复杂度

密码复杂度策略只对生效后的操作有效,比如说你之前有个账号,密码是 123  ,则该账号还是可以继续使用的,不过若再次更改密码则需满足复杂度策略。下面我们来测试下密码复杂度策略的具体效果。

#  新建用户设置密码  mysql  create user  testuser @ %  identified by  123  ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mysql  create user  testuser @ %  identified by  ab123  ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mysql  create user  testuser @ %  identified by  Ab@123  ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mysql  create user  testuser @ %  identified by  Bsdf@5467672  Query OK, 0 rows affected (0.01 sec) #  更改密码  mysql  alter user  testuser @ %  identified by  dfgf3435  ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mysql  alter user  testuser @ %  identified by  dBsdf@5467672  Query OK, 0 rows affected (0.01 sec)

2. 设置密码自动过期

除了设置密码复杂度策略外,我们还可以设置密码自动过期,比如说隔 90   天密码会过期必须修改密码后才能继续使用,这样我们的数据库账号就更加安全了。下面我们来看下如何设置密码自动过期。

单独设置某个账号密码过期时间

使用 ALTER USER 语句可以使单个账号密码过期,也可以更改账号过期时间。

#  通过  mysql.user  系统表查看数据库账号状态  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 | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ | expuser | % | N | NULL | 2021-01-05 14:30:30 | N | | root | % | N | NULL | 2020-10-30 14:45:43 | N | | testuser | % | N | NULL | 2021-01-04 17:22:37 | N | | mysql.infoschema | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | mysql.session | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | mysql.sys | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | root | localhost | N | NULL | 2020-10-30 14:38:55 | N | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ 7 rows in set (0.01 sec) #  使  expuser  账号密码立即过期  mysql  ALTER USER  expuser @ %  PASSWORD EXPIRE; Query OK, 0 rows affected (0.00 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 | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ | expuser | % | Y | NULL | 2021-01-05 14:30:30 | N | | root | % | N | NULL | 2020-10-30 14:45:43 | N | | testuser | % | N | NULL | 2021-01-04 17:22:37 | N | | mysql.infoschema | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | mysql.session | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | mysql.sys | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | root | localhost | N | NULL | 2020-10-30 14:38:55 | N | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ 7 rows in set (0.00 sec) #  修改账号密码永不过期  mysql  ALTER USER  expuser @ %  PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.01 sec) #  单独设置该账号密码 90 天过期  mysql  ALTER USER  expuser @ %  PASSWORD EXPIRE INTERVAL 90 DAY; Query OK, 0 rows affected (0.00 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 | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ | expuser | % | N | 90 | 2021-01-05 14:41:28 | N | | root | % | N | NULL | 2020-10-30 14:45:43 | N | | testuser | % | N | NULL | 2021-01-04 17:22:37 | N | | mysql.infoschema | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | mysql.session | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | mysql.sys | localhost | N | NULL | 2020-10-30 14:37:09 | Y | | root | localhost | N | NULL | 2020-10-30 14:38:55 | N | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ 7 rows in set (0.00 sec) #  让此账号使用默认的密码过期全局策略  mysql  ALTER USER  expuser @ %  PASSWORD EXPIRE DEFAULT; Query OK, 0 rows affected (0.01 sec)

mysql.user 系统表记录着每个账号的相关信息,当 password_expired 字段值为 Y   时,代表此密码已过期,使用过期密码仍可以登录,但不能进行任何操作,进行操作会提示:ERROR 1820 (HY000): You must reset your  password using ALTER USER statement before executing this statement.   必须更改密码后才能进行正常操作。

对于给定过期时间的账号,比如说设置 90 天过期,数据库系统会比较当前时间与上次修改密码的时间差值,如果距离上次修改密码时间超过 90   天,则将此账号密码标记为过期,必须更改密码后才能进行操作。

设置全局过期策略

要构建全局密码自动过期策略,请使用 default_password_lifetime 系统变量。在 5.7.11 版本之前,默认的  default_password_lifetime 值为 360(密码大约每年必须更改一次),之后的版本默认值为  0,表示密码不会过期。此参数的单位是天,比如我们可以将此参数设置为 90,则表示全局密码自动过期策略是 90 天。

#  设置全局过期策略   先手动更改再加入配置文件  mysql  SET GLOBAL default_password_lifetime = 90; Query OK, 0 rows affected (0.01 sec) mysql  show variables like  default_password_lifetime  +---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | default_password_lifetime | 90 | +---------------------------+-------+ 1 row in set (0.00 sec) #  写入配置文件使得重启生效  [mysqld] default_password_lifetime = 90

尽管可以通过将过期的密码设置为当前值来“重置”它,但出于良好的 Policy 考虑,最好选择其他密码。

“如何设置安全的数据库密码”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计8250字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 亚洲欧美精品在线 | 玖玖玖精品视频免费播放 | 国产精品99久久久久久宅男 | 亚洲va中文字幕无码毛片 | 欧美另类xxxx图片 | 亚洲图片小说综合 | 精品国产一级毛片 | 97在线成人免费视频观看 | 国产亚洲一区二区三区在线观看 | 99国产在线播放 | 国产在线精品99一卡2卡 | 亚洲综合在线网 | 亚洲av无码一区二区二三区∝ | 午夜影院色 | 成 人 黄 色 大片 | 久久99精品一久久久久久 | 久久精品国产半推半就 | 日本aa毛片a级毛片免费观看 | 饥渴的熟妇张开腿呻吟视频 | 四虎影视在线永久免费观看 | 精品97国产免费人成视频 | 亚洲午夜无码久久 | 久久精品在 | 99午夜 | 一道本在线视频 | 亚洲精品久久玖玖玖玖 | 狼色精品人妻在线视频 | 日本三级韩国三级欧美三级 | 伊人婷婷综合缴情亚洲五月 | 欧美专区第一页 | 黄色网址在线免费播放 | 中文字幕人妻无码系列第三区 | 欧美人与物videos另类 | 全免费a级毛片 | 国产成人精品午夜视频' | 日日碰狠狠躁久久躁96avv | 国产精品成人免费 | 雯雯在工地被灌满精在线视频播放 | 亚州视频一区 | 久久久久av无码免费网 | 国产精品bdsm在线调教 |