00:00
好,同学们,咱们接着往下说,那关于用户的话呢,我们看一看如何去修改他的密码,那我们在这个实际生产环境当中,这儿呢,我们创建的用户呢,分配给这个人去使用了,那么这个人呢,诶后边呢,可能转岗了,也可能离职了,那这时候我们关于这个用户的话呢,可以是做一个删除,对吧?然后呢,又新来了一个人之后呢,我们再重新给他创建一个用户呢,分配给他,然后他去做相关的操作就可以,这是一种场景,还可以怎么着呢,就这个人呢,他走了以后呢,我们这个用户呢,还留着这个人,新的这个员工呢也来了,然后把这个用户呢,再分配给他就可以了,那这个时候呢,我们需要把这个用户呢密码进行一个重置,对吧?这就涉及到用户密码的一个修改问题。好,那如何去修改用户的密码呢?诶这里边儿我们说有两种场景。两种场景,一种场景呢,就是他修改自己的密码,这里边儿呢,包括入的用户修改自己的密码,也包括呢,普通用户他在登录以后呢,修改自己的密码啊,这个都很容易理解的,对吧,这是一种场景,还有一种场景呢,就是修改其他用户的密码。
01:03
那这呢,很显然这个用户对应的权限呢,就会比较大一些,比如说我们的root用户,他呢就有权限呢,去修改其他任何用户的这个密码。对吧,那这里边儿就修改涉及到这个修改其他的了,这样主要两种场景,那两种场景我们就分别来介绍,首先呢,我们来说这个第一种场景,这个设置当前用户的密码。啊,看这里边描述说入的用户啊,拥有很高的权限,因此呢,必须保证入的用户的这个密码呢是安全的啊这个说的非常的直接,对吧?那入的用户呢,他这个可以通过多种方式来修改密码,比如说al user的方式啊,这个也是咱们麦官方推荐的,还可以使用这个赛方式呢去修改啊还提到这样一个问题,这个咱们就啊,那先说这个也行,嗯,这块呢,就是涉及到修改的话呢,这不是说有两种方式,一个叫al user,一个呢叫set这个方式。对吧,赛这个方式的时候呢,这里边涉及到了一个这样的一个呃,函数的一个使用叫password,咱们在讲上篇这个单行函数的时候呢,涉及到加密的时候,我们也提到过这个问题,MYSQL8里边儿呢,咱们这个passw呢给移除了。
02:11
啊,给移除了啊,这个这个这个函数现在给移除了,那移除的话呢,就意味着我们这样的一种方式呢,就不能用了,包括呢,还有一种像像我们的使用update,你去修改user表的方式也就用不了了。这样一说感觉有点乱是吧,那大家呢,先来看一下咱们推荐怎么写,然后咱们再这个啰嗦两句,说这个事儿推荐怎么写呢,这块呢,我们说推荐用这个叫alter user的方式。啊,就是这样的方式去写,修改自己的,注意再一种方式,用这个set方式,这两种方式呢都可以。啊都可以啊,不推荐的是用我们说那个update了啊行,那推荐的这个我们先说这个事儿。回过来,呃,修改的话呢,咱们现在看看还剩着谁。这里边儿呢,是不是有个张三呀,这个张三呢,咱密码是ABC123,没记错的话,来我们先登录一下。
03:01
MY这个张三,这个杠PAABC123,我就特意的把这个密码呢,就明文的写到这了,证明呢,这密码就是ABC123行这块,我们是不是就登录成功了,呃,我们现在呢,想修改当前用户的密码,我们现在呢,在这个位置呢,是入的用户登录的,那我们就可以呢,叫做al user叫user小括号这个表示呢,咱们获取的就是当前这个root用户,然后identified。BY,那我写成ABCABC吧。诶,我这样子,哎,大家看是不是就做了一个修改,然后呢,我们退出一下,接着呢,MYSO-u root,用户杠P,我写ABC123,大家看此时呢,是不是就进不去了,然后我写ABCAABC,哎,再来是不是我就进去了,那这就相当于密码呢,我们做了一个修改,好这个呢,同样道理是不是也行。那我就不演示这个了,那刚才说的这种方式呢,我们叫做al user,这样的方式也适用于咱们普通用户啊,没问题,那第二种方式呢,这个叫set的方式。
04:02
S这个方式的话呢,叫password,等于它来我们这时候呢操作一下。嗯,到这是吧,在这个位置这个位置的话呢,来咱们看一下啊,我叫set一下,首先呢,我们是在当前张三已经登录成功的场景下去做的修改当前这个用户set password。等于这个密码我写啥呀,我写个ABCAABC吧,跟刚才那个一样,来回撤一下是不是就可以了,可以的话呢,来我们做一个这个退出,退出我们再接着MY-U。张三杠PABC123,我们再来看是不是就进不去了,然后我们改成ABCABC再来是不是就进去了,行,两种方式都可以去修改,那么这种方式呢,我们稍微的强调一下,说刚才呢提到了说不让这样用。嗯,说不让这样用,那就是咱们这个密码啊,诶说一下密码呢,在我们真正这个MYSQL当中存储的时候呢,它其实是做了加密处理的。
05:01
啊,咱们先稍微的提前一下说一下这个问题,我在这块去说入到用户这块呢,我们去,呃,先去use一下叫MY这个数据库对吧,然后呢,我们去DEA一下这个user表,这个表的话呢,你看字段是很多的,咱们那会儿呢,相当于是不是查看一下这个host和user对吧,还有一个字段呢,叫它。哎,叫这个字段,你看这个还挺长的,这个呢,其实存储的就是咱们用户的密码,诶你看此时呢,我再去这样。Select,我叫host user,再加上我们这个字段挺长,我就直接复制一下。嗯,粘过来,诶from一下我们的user表对吧?好,大家看咱们这个入的用户呢,刚才我改的密码是不是叫ABCABC啊,然后这个张三的话呢,你看我们也是给他这个设置这个密码,你会发现呢,我们在这个优色表当中保存的它可不是铭文,实际上呢,是做了这个加密处理的。做了这个加密处理的,那也就是说呢,你看我们刚才在这块呢,咱们说set password等于ABCABCABC,这个ABCABC呢,并不是真正存在这儿了,而是做了加密处理,同样的它的这个ABCABC也是同样的道理。
06:08
啊,这个大家要注意到这样的一个现实。没有问题的是吧,行,那那以前的这个方式呢,说你上边呢,自己主动的去给大家做个加密这样的方式呢,由于这个password这个函数已经失效了,所以咱们在8.0当中,哎,就不要用这种方式,或者也不能用这种方式。啊,这种方式啊,包括呢,我们update直接去改那色表,相当于我们拿这个优色表里边,我们去把这个密码给大家去改一下啊,这个也是不推荐的方式,就用咱们刚才讲的这两种。啊,老是老是开开这个往前移一下吧。就用这两种,一个呢叫user啊,一个呢叫set,这种方式好过了。然后接下来的话呢,我们说一下叫修改其他用户的密码,那很显然你得有这样的权限,那咱们就以这个入的用户呢来说明。这个修改的话呢,呃,其实还是用的这个al啊,还是用的这个叫set是吧?来我们看下第一种方式,这个al的话呢,就是al user,注意不是我们user函数了,表示的是你当前用户啊,而是呢,就是指明是哪一个用户啊就妥了,那行,那咱们回过来,咱们在这个入用户这块。
07:13
啊,我这块去写啊,叫al user,哎张三吧,哎注意这块呢,我们写的完整一点,哎针对的是不是这样的一个。呃,这个,呃,这个host呢,是这样的一个是吧,百分号这个人这儿呢,是唯一确定的,你就是一个用户了,然后后边怎么写啊。Identified。哎,拜是吧,嗯,密码咱们再改一下吧,改成叫哈吧。啊可以了,好altered啊,属于一个DDL这样的操作,就不用flash了,这个改完以后的话呢,回过来你看当前的用户呢,他其实还是一种登录的状态,呃,Show一下,比如叫data。这样他不会说呢,你那边把我这个用户修改完以后呢,我这块呢,就立马报错了,呃,你当前登录的话,那就还登录的,但是一旦呢,你要是退出以后,你再想登录啊,我们ABCABC那这时候就不行了,因为咱们改成了是不是hello了啊再回车,那这时候才可以。
08:09
行清楚是吧,哎,Al user的方式,嗯,这是一个。还可以的话呢,这个叫set啊,刚才我们上面讲的不也是一种set方式吗?这个也有set对吧。Set password多了一个叫for啊,用户还有它的host,然后等于啊这样啊,相当于我们在上边这块呢,是不是多加了一个信息而已啊来这块我们再去修改。还是在我们这个root用户下,那我们呢,叫什么来着,是不是password。嗯,然后负对吧,针对于张三,嗯,然后呢,这个还是一个百分号,哎,这么着对吧,然后注意后边呢,是这个等号。哎,后边是一个等号,等于呢,我们叫哈123吧,这样啊又改成了。啊set的是吧,改正以后的话呢,回过来我们再退出啊,再登录这个我叫hello,那这时候就进不去了啊123就进去了。
09:05
好这呢,就是我们说呃,通过入的用户呢,去修改其他用户的这样的一个操作。嗯,然后使用这个update的方式呢,就咱就别整了啊,就别整了啊,因为update的话呢,这块就涉及到我们update一下我们这个优色表,晒一下这个字段,刚才刚才咱们说的这个密码是不是就它呀,然后呢,用password,诶去做一个加密了,然后where user host是谁?但是这个函数呢,在8.0里边就失效了,所以这个呢,大家在8.0里边就别做了,那有同学可能会想说,老师那在5.7里边行不行,5.7里边是可以的。我就不掩饰了。我就不演示了,就是我们没有必要非得用它,对吧,因为我们是不是第一种,第二种方式,不管8.05.7都可以用啊,哎,这足可以了啊,没有必要非得用第三种也不推荐啊,就过了。下边的话呢,关于MYSQL的密码的一个管理,作为一个了解就行,那这块呢,我们简单的就是按照这个课件呢,往下过一下就行,这块呢,关于密码管理呢,我们提到这三个点,第一个密码的一个过期问题。
10:04
比如说要求用户呢,就是定期呢,你去修改你的密码,这样的话呢,就更安全一些是吧,避免那个密码给暴露出去,第二呢,叫密码的一个重用的限制,比如说呢,我们限制你多长时间,或者你最近的几个密码,比如我们最近五个密码,你要再去改密码的话呢,你不能够使用最近的五个密码。啊,类似于这样的一个情况。好,然后呢,还有这个密码的一个强度的一个评估,那这块呢,咱们在讲第一章的时候呢,呃,涉及到过这个问题啊,你是个漏的,是一个medium还是个strong的,包括呢,这个密码的一个长度是多少,诶我们提到过了啊,就不说了,好,那首先呢,我们针对这个前两个来讲,第一个叫密码的一个过期策略。说在MYSQL中的数据库管理员可以手动设置密码的一个过期,也可以建立一个自动密码过期的一个策略,那过期策略呢,可以是全局的,就是针对于任何这个用户都是起作用的,也可以呢,就是针对于某一个比如张三才有效的啊,都OK的。如果呢,我们这样写说al user张三password啊,加上我们这样的一个操作啊,加上这个操作以后的话呢,我们这个立马呢就过期了。
11:08
啊,立马呢,我们就就过期了,比如说我们去al user叫康师傅是吧,诶针对local host,然后把它密码呢,设置为是一个过期的,那这时候呢,我们这个康师傅这样一个用户呢,仍然可以登录到这个数据库里边,但是呢,无法进行这个查询操作。啊,只有呢,你重新设置了密码呢,才可以正常去使用,因为密码呢,注意这个我们说的是密码设置成过期了啊啊这个注意一下行,那我们这块呢,就是手动设置指定的时间过去的方式,一种呢叫全局的,我们呢可以使用这个叫default password lifetime啊去设置默认的这个值是零。那就意味着它就不会有这个过期的一个问题,然后呢,你可以指定一个数是N,那比如说我们当然这个是在这个配置文件当中,大家可以这样去指定的,对吧?嗯,配置文件中可以去指定。然后指定的话呢,它的这个值,比如我们写成是180,那就是呢,超出180天以后呢,它就过期了,那过期以后呢,嗯,你要是能登录了,但是没法查询,必须呢去更新一下密码,然后这时候呢才能够才正常的登录,OK行这呢就是我们说的这个事儿啊,一个呢是这个临时的,我们这块呢,去做一个set操作也可以呢,写到我们的配置文件当中,OK啊下面呢叫单独的设置。
12:20
那就是咱们这个是呢,是针对于所有的用户都起作用的,单独的设置的话呢,我们可以通过这样的方式啊,如果你要是创建用户的时候呢,在后边这块去加说90天以后呢,就过期了,那也可以修改用户的话呢,才加上这样一个操作,永不过期就是啊过期是一个never的永远不过期,正常使用我们全局的方式,那就是读这个或者读这个啊按照这两种方式呢,哎,这个我们去。这个设置你自己的过期策略啊,啊,这就过了,然后下面呢,叫密码一个重用的策略。呃重用呢来限制,呃重用限制策略呢,是基于比如密码更改的一个数量和使用的这个时间啊,还是有全局的和单独啊针对某一个用户来设置的这种情况。
13:03
好,那密码更改的一个数量是什么意思呢?呃,如果密码更改的这个最小值为三,那么新密码呢,就不能与最近的三个密码中的任何一个呢相同。这个大家呢,好像,嗯,我看我记得以前是在是银行卡吧,还是说这个这个手机当中好像出现过这个场景,对吧。这个这个场景出现的还挺多的,就是咱们比如有的时候呢,大家可能会出现写了用户名以后,写密码的时候忘了,这时候二段是不是有个叫忘记密码,那我们点忘记密码的时候呢,他就一顿验证验证,最后呢,需要我们再设置个新的密码,但是你把这个密码你写完之后呢,呃,密码和确认密码写完之后呢,你点确定,他说你不能跟你最近的这次密码是一样的,就是你以为你忘了密码了,实际上呢,你这块写的就是你这个刚才那个密码了,呃,一般呢,它设置的都是设置成这个一了是吧。OK啊。但是你要更严格的话呢,你可以把这个值呢设置的更大一些,要求呢,跟你最近使用的三个密码都不能一样啊,这个是没问题的,还有一种呢,是基于这个时间的,就是如果你这个呃,重用的这个时间呢,是60天,那么你设置这个新密码呢,就不能从最近的60天内使用这个密码当中进行一个选择。
14:14
啊,这个就比较清楚,那么对应的话呢,呃,是设置这个数量的,还是设置这个周期时间的啊,有这样两个参数,还是可以临时的这种方式来指定,也可以使用配置文件的方式去制定。啊,也可以呢,针对具体的用户呢,这块去设置啊,这个大家一看我们这个文档呢,就非常清楚,我就不多在这儿去啰嗦了,然后第三个呢,关于我们这个密码强度的问题呢,咱们在第一章当中已经讲过了,那整个呢,关于用户密码这块的问题呢,我们就说到这儿。
我来说两句