00:00
好,同学们,咱们接着来看一下这个第三章叫做用户与权限管理,首先呢,我们来看这一章呢,主要涉及到几个问题,那咱们在前面的讲解当中,包括咱们上天主要呢,咱们是不是都是以入的用户呢,来登录咱们的MYSQL数据库服务器啊,相关的一系列一系列操作呢,都是用的这个入的用户,那我们在实际生产环境当中啊,咱们入的用户呢,会用,但是它的使用频率呢,肯定不会特别高很多,或者说绝大部分这个操作呢,我们通常都是在这个入的用户,其下边的其他的一些用户当中去做的操作的,因为root用户呢,他属于超级管理员,他的权限呢是比较大的,那很有可能呢,我们会进行一些误操作,对吧,包括呢,我们在公司当中呢,你可能会涉及到多个这个管理的角色,那我们就这个分配他们不同的这个用户就可以了,没有必要呢,都给他们入的用户。那这个应该很容易了解啊,很容易理解行,那这一章的话呢,咱们主体呢,就来讲解一下,关于用户呢,我们如何呢进行创建,修改,删除,包括呢对密码的一个设置,同时的话呢,我们创建用户还需要赋予它相关的权限,那否则的话呢,它其实没有对应的操作数据库操作表的这样的一些权限了,对吧?那我们涉及到权限的一个管理啊,就是这样问题,主体的就是复议权限和回收权限。
01:15
好,这个三的话呢,就涉及到我们关于前线的一些记录呢,它其实是放在一些具体的表当中的,那我们再说一下这些表呢,在底层分别对应的是哪些表,包括呢,他在这个查看你是不是具备这样权限的时候呢,它有对应的一个顺序啊,到时候我们再说第三节的时候呢,去讲第四节呢叫访问控制,涉及到一个连接,还有一个请求啊,这个呢,做一个了解就可以了,第五节的话呢,叫做角色管理,在MYSQL8.0当中,我们引入了一个概念呢,就叫做这个角色。相当于呢,我们给用户呢,在赋予权限的时候呢,呃,新建一个用户,那我们之前呢,只能是一个一个的给他去添加权限,现在的话呢,我们可以呢,把相关的权限呢,设置在啊,或者叫封装在一个角色的概念当中,把这个角色呢附一个用户啊,相当于比以前呢就更简单了,对吧?那么后边的话呢,这个六呢,咱们再给大家讲解一下,关于这个配置文件的一个使用,相当于咱们在这个上篇当中啊,也涉及到过,上篇呢咱们叫点N对吧,在咱们这个Linux环境下呢,叫点CNF了。
02:17
好,那么在这个配置文件当中,我们可以呢,在相关的这个标签下面呢,去写一些就是配置信息,对吧?那么这些配置信息的话呢,它都有哪些,加载的顺序是什么,我们也做一个说明,然后第七个的话呢,这个咱们其实在上篇当中啊,已经讲到过这个变量了,分为系统变量和用户变量,对吧?那么这呢,为什么我们要提一下这个系统变量呢?就是因为咱们在配置文件当中,其实涉及到的这个具体标签下的这样的一些属性的声明,其实呢,也涉及到了就是一些变量的一些赋值,那这呢,其实就提到了我们关于这个系统变量,这呢就做一个复习就可以了啊,不再去详细的讲解,好这呢就咱们这一章的内容,首先呢,咱们来看第一个问题,叫做用户的管理。啊,整个这一章的话呢,其实难度呢不大好,那我们来看第一节说这个MYSQL的用户啊,可以分为普通用户和入用户啊这个呢,显而易见的,这个root用户呢,他的权限呢是比较大的,那我们要想创建新的用户呢,实际上呢,首先或者在最原始的阶段呢,你最初也得需要拿root用户呢,来进行对其他用户的一个创建。
03:21
好说MYSQL呢提供了许多语句呢,用来管理用户的账户,那这语句呢,可以用来管理,包括登录退出MYSQL服务器,创建用户,删除用户这个密码管理,权限管理等等啊丰富的这个内容,那下边其实我们来讲解的就是。然后这里边儿还提到一句话,说MYSQL数据库的安全性需要通过账户管理来保证,那毫无疑问。啊,怎么叫毫无疑问呢,大家时不时就经常听到这句话,说呢,从山库到跑路对吧?那从删库到跑路,那首先呢,表明你是不是有山库这样的权限,那你既然能删控呢,你在公司当中肯定呢,是作为一个数据库的一个管理的角色出现了,相当于呢,给你分配的权限呢,是不是过大了,然后你把这个数据库在没有备份的情况下呢,做了一个删除,那就赶紧跑吧,对吧?诶所以这块呢,我们说安全性啊,在用户方面呢,体现的是淋漓尽致的。
04:14
那我们在实际生产环境当中,就是能给你对应的这个管理的角色呢,富裕权限能小呢,就不会给它大了啊坚持一个叫最小分配的一个原则,OK,行,那这块呢,我们就来具体看一看,诶首先的话呢,关于我们登录这个MYSQL服务器啊,这个咱们其实已经很熟悉了,这呢只是列出来了一个最完整的一个语句是什么样子的,那咱们直接回到这个命令行这块呢来演示。这里呢,我还是通过咱们这个叉上呢,远程连接上了我们的这个3S这个七下的,咱们这个这个8.0是吧,这个数据库服务器啊。这里边呢,我们做个登录以前的时候呢,咱们写的话呢,是不是就都经常的这样去捡起了,然后我写个ABC123啊一回车是不是就登录成功了,对吧?这里边儿的话呢,其实我们表示呢,就是用户呢叫入的用户了,密码呢,就我们换行以后输入的,其实有很多其他参数呢,咱们都使用的是默认值。
05:07
啊,然后在这个之下的话呢,咱可以就要收。Data。Basis是吧,查看一下我们当前这个数据库,那也可以呢,我们去使用一下,比如叫DB test1,然后我们再去叫嗯,Select吧,咱这里边有一个表,我记得有个表是不是叫EPE啊,好,你看我们这个时候就查到了,这个呢,是咱们使用的这个最基本的这样的一个情况。嗯,在这进行一个登录对吧,那如果说呢,我们这个换一种相对来说详细一点的一个登录方式是怎么样的呢?大家可以这样来考虑,这个MYSQL,这个我们登录的话呢,用的都是这样的一个指令了,后边的话呢,我们叫杠H啊,这个后边这空格呢,可加可不加,这个杠H的话呢,就表示我们连接的这个主机啊,地址或叫IP是什么,那我们没有写的话呢,默认就是logo host。或者呢,叫127.0.0.1也行是吧,比如我这块呢,就写上叫local了,然后再一个杠大写的P,这个P呢,我们称为它叫端口号,这个咱们在上篇当中实际上呢都讲过了,对吧?默认呢是3006,你要不写就是306了,然后再往后写的话呢,是不是杠好这个小写的P就该写密码了呀。
06:15
OK,这个密码呢,咱们还换行写哈,我再往后实际上的话呢,我们还可以呢,再去写,那再写写什么呀,比如我们现在想登录这里边儿呢,有个数据库呢,是不是叫DB test1啊,那我直接呢,在这个后边呢,就可以写DB test1,咱们就把要访问的这个数据库呢都写上了。还可以呢,再夸张一点,我叫杠一,在杠一后边呢,我们可以呢,把咱们这个SQL语句呢都写上,比如说我们想查询一下咱们DB test1这个数据库下的是不是EP这样一个表,E p1这个表,对吧?好,你看我就这样写的。是吧,我就是这样写的,好,写完以后呢,我们做一个回车密码呢,ABC啊123好,我再来一个回车,当然你会发现呢,我们此时呢,这个语句呢,是不是就完整的就执行出来了。
07:00
啊,这个查询语句就查出来了,查完以后的话,你发现呢,咱们现在是不是仍然不是在咱们这个MYSQL这个环境下的,还是咱们这个相当于Linux这样一个环境下,对吧,那相当于整体呢,就做了一次连接,查询完以后呢,相当于他又退出了啊这样的一个场景。啊,这呢,就是一个稍微来说是一个完整的一个结构啊,这个大家应该能听明白我这里边儿的意思。好,这个咱们就过了啊,不多说了,下面的话呢,我们正式来讲解如何去创建用户,诶如何去创建用户,好,那我们回过来。回到咱们这个位置吧,哎,回到这个位置,这个的话呢,咱们先做一个,诶诶这块是吧,这块呢就留着吧,咱们在这吧,正好这块呢,就是咱们的一水环境啊嗯,这里边儿呢,我们想给大家先强调一下,咱们这个系统呢,在安装好以后呢,它其实是有几个用户的。啊,不管是咱们这个入用户啊,是有几个用户的啊,还是得在这看,那我们现以这个入用户呢,是不是我登录了对吧,登录以后的话呢,咱们呃就要收啊,上面也写了是不是有这样的一个数据库叫my circle,然后的话呢,我们可以use一下这个my circle这个数据库,这个数据库的话呢,你一看它就非常的核心。
08:07
长得就非常的核心是吧,咱们在这个上一章的时候呢,其实提到过,他这里边呢,主要就是提供了我们关于用户的一些这个这个呃信息啊,存放在相关的一系列的表当中,OK,咱们到下边这几节的时候呢,这不还会去讲它这里边的一些表,现在呢,我们主要呢说其中的一张表,就是我们这个user表,咱们在前面呢,其实也做过一些这个插曲啊select星,我们如果呢,去from一下这个叫user表的话,呃,一回车大家也会发现它这里边的字段啊是非常的多的,对吧,那你这个也可以改成这个杠G。啊,这样的方式呢,我们去做一个查看里边呢,你会发现呢,是不是有四个用户。那这里边儿呢,这个字段很多,那我们还是那意思啊,一会儿我们讲到这个三的时候呢,咱们再具体展开这个表的具体细节来讲,咱现在首先关注的只是其中的几个字段,好我这块呢,来写一下,Select一下叫host,然后叫user,然后from一下我们这个user表啊一回车。
09:03
好,大家呢,能够看到目前的话呢,我们当前整个呢,咱们8.0的这个MYSQ数据库服务器呢,实际上的话呢,是有是不是四个用户啊。对吧,有四个用户,这三个的话呢,都是属于系统提供的这些咱们一般的用不着,咱们呢,刚才上边的话呢,是不是都是以入的用户呢,来进行那个登录,对吧,那我们是可以登录成功的,好那么在入的用户这个场景下的话呢,我们就可以去创建其他的用户,说白了就是我们这个入的情况啊,它是具备创建其他用户的权限的。他要都没有的话,那就麻烦了是吧,那就呃,这是一个根了啊,这个还得有生儿育女的权限,他也没有,没有,那就是地球上最后一个人了,那就没意义了是吧?好,那我们如何去创建用户呢?这里边儿提到的指令呢,叫做create user。在咱们这个搜当中,其实这个事儿还是非常好记忆的,你想创建什么,你就create什么。创建这个触发器,Create trigger啊,创建存储过程啊,Create procedure是吧,诶非常的这个这个清晰啊好,那这里边呢,我们就去create一个user,这个user我们叫什么呢?比如说我们就叫做这个张三我这样写的,那我们指名用户的话呢,通常是不是还得指明他的密码啊,这个怎么说呢?哎,这个我们叫identified by。
10:21
那后边这块呢,我们加上一个单引号,里边呢,就输入我的密码,比如我这块呢,还叫ABC123啊回车一下。好,大家发现呢,我们此时呢,是不是就创建成功了呀。那创建成功以后呢,我们再去select user user1查看,是不是我们这里边呢,就多了一个user没问题。对吧,那当然你看我们创建好这个U呢,它前面对应的host呢,你看是不是这个百分号啊,IG呢,就我们支持呢,任何IP地址下的这个张三用户呢,去进行的一个连接。进行一个连接。能理解对吧?行,那在这个情况下呢,你比如我再把这个语句呢,再执行一遍,大家觉得他会报错吗。
11:00
来,我们看。复制过来是吧,一回车当然你会发现呢,说我们这样的一个操作呢,它失败了,因为呢,是不是咱们当前已经有这个用户了,那通过这块呢,大家你会发现说他其实我们是已经有了叫张三,然后艾特后边呢,你看用的这个是百分号。包括呢,咱们创建好以后的这个张三用户呢,前面也是百分号,所以就意味着咱们默认咱们要这样写的话呢,它对应的访问的这个host词的话呢,就是一个百分号啊,这样的一个同配符,那如果我们不想写成百分号,那怎么办呀,那咱们就自己呢,来给它改一下呗,对吧,来我们再粘过来,在前边这个位置呢,我们具体的指明,比如艾特一下,咱们想写成一个比如叫local host吧。能理解吧?然后呢,我们再来一个回撤,大家你会发现我竟然又创建成功了,对吧?好,我们再去做一个select查询,大家你会发现呢,我们这里边是不是就有两个张三了。然后这个是百分号,这个呢是local host,相当于它呢主要是本地的连接,这个呢是支持任何段的一个连接。
12:05
那这里边呢,我们很显然呢,就相当于是我们有个表呢,叫user表,这个user色表的话呢,肯定不是拿这个user来作为,仅仅拿这个user作为主件的。如果是的话呢,你看它是不是就相当于保不唯一了呀,啊,这个我们提前给大家说一下,就是我们这个表里边的主键是谁呀?是这两个字段共同构成的一个叫联合主键,相当于呢,就是我们创建这个表中的这个用户的时候呢,这两个字段合在一起,只要它满足唯一啊,飞空啊就可以了,就满足我们这个主键的这个特点,所以说呢,你看这里边合在一起的话呢,我们实际上是可以创建是不是同名的这样的user,只要他们这个host呢,它们不同就可以了。能理解对吧,那建议大家呢,在创建的时候呢,我们在这个user后边呢,要把这个呢写清楚,即使咱们这个at后边呢,你想写的是百分号,那就是把这个百分号呢给它写上,就类似于这样的一个格式。啊,那再举个例子也行,比如说我们去再来一个。
13:02
Create一个user,这个叫李四对吧,然后呢,是艾特一下,那咱们就这样了,诶这样这样写是吧。好,Identified。BY这个我还写成ABC123吧,好记,那这呢,你看我们就创建成功了,然后再再咱再做一个这个select查询,你看是不是就这样的一个情况啊。对吧,好,这个应该是大家容易理解的,那这样的话呢,我们就把这个用户呢,就创建成功了,那创建成功以后呢,我们是不是就可以考虑呢,去做一个这个这个登录啊,啊做一个登录啊,那我们比如说就回到这个位置,咱们做一个登录啊MYSQL-U,咱们叫张三吧,然后杠P是不是写密码啊,为了证明呢,咱们这密码写的是没有问题的,我就把这个铭文的就写到这儿了,然后回车一下。大家你发现呢,我们是不是登录成功了,没有问题,只不过呢,这块呢,它给了我们一个叫warming,说那你写这个密码的时候呢,在命令行后边呢,这样的写法呢,它是不安全的啊,就是给我们一个警告啊,了解一下就行,好这块呢,我们能登录能够这个登录成功,然后这块登录成功以后呢,大家可能就会想说,诶我这个哥们呢,去show一下叫data basis是吧,大家你会发现呢,你看此时给我们呈现出来就只有这一个。
14:12
那其他几个都没有,那因为呢,就是这哥们儿呢,默认创建的时候呢,它的权限呢,其实是非常有限的啊啊比如我们这个叫show一下。诶,当然你会发现呢,我们这个呢,就只有这个哥们儿呢,他去登录这样的一个权限。啊,就这样个权限还非常少啊,权限呢,咱们一会儿再说如何去付行这块呢,就清楚这个问题了,好接着我们再看。创建用户呢,没问题,所有同学呢,这都需要去掌握啊,下边呢,叫修改用户,修改用户,这用户有啥可修改的呀啊注意这时候我们这个修改呢,不涉及到权限的问题,权限是专门后边去讲这个修改用户呢,就是可以给他改个名。啊,这个update一下啊,去做修改,首先呢,我们说明一下这个操作啊,咱们用的呢,实际是很少的。啊,先明确一下,这个操作我们用的是很少的,这是其一,那其二的话呢,你看我们这个修改是怎么改的,大家你看我们想修改这个用户,咱们改的是这个表。
15:10
对吧,改的是一个表什么意思啊,咱们把这个用户创建好以后,咱们在查看这个user表的时候呢,你不是发现了我们这个用户呢,是不是就创建成功了,那现在所谓的修改呢,实际上就是对这个表中这个字段的一个修改。就是这个意思,比如说咱们刚才这是不是李四呢,是改分号是吧,我们把这个李四改成这个王五,可不可以看就是这个意思,来update一下,我们叫user set一下这个user呢,等于这个我们叫哎王五嘛。然后呢,这个where。啊,Where,这user等于呃是叫李四对吧,这个时候你要注意咱们这里边儿呢,因为只有一个李四,你要说咱们要想改张三的话呢,比如把它改了,那你这时候你就不能光写又是等于张三了,因为我们这里边是不是有两条都叫张三。对吧,那你可以后边呢,相当于再准确一点,很暗的这个host呢,是不是等于我们这个百分号的就是唯一的定位一条数据,因为它俩呢构成一个主键。
16:06
好,这个写完以后的话呢,我们直接来一个回车。成功了,成功以后呢,我们再去做一个这个select。但是你会发现呢,此时我们这个李四呢,就变成了王五。那我们过来呢,试图做一个登录,咱们做一个quit退出好,然后。MY,那如果呢?这是我们写,叫李四,大家看杠PABC123,这是我们哟。哎,你看啊,注意看这时候呢,正好是做这个说明,但是你会发现呢,我们这时候是不是已经改了。是不是已经改了吗?改了以后呢,你发现我们再去登这个李四呢,登录成功了,诶正好呢,作为一个反面的一个说明,为啥呢?因为这里边儿呢,我们修改完以后,大家一定要注意进行一个操作,这个操作呢叫做flash,诶privilege。诶好,你看我这时候呢,是不是flash了,Flash以后呢,诶大家你再看啊,我呢是不是退出一下,退出完以后的话呢,我们再拿这个李四呢做一个登录,你看此时呢,我们还能不能登录成功,周琦你看发现呢,此时是不是就不行了呀。
17:08
那因为呢,我们把这个权限刷新以后呢,它就真的不能登录了,那要想登录的话呢,我们得切换成是不是叫王五。来,万物走起。发电的是不是就可以了?行,那这块呢,正好给大家演示一下这个flash privilege呢,这个操作不要丢了,刷新我们这个权限,OK。这个呢,我们就称为是个修改,但是大家你听一下就完了,一般我们很少去修改的啊,就过了,然后在下边的话呢,叫删除用户,就是我们公司里边,比如说新来了几个这个数据库,涉及到管理的这样的角色,我们呢就可以通过,比如像入的用户,当然呢,你也可以把这个权限呢,入用户付给下边这个子这种管理员是吧?诶让这个用户呢,去做这个相关的用户的创建也是OK的,那创建好用户以后呢,就是公司呢,新增的员工啊,比如说有几个人都具有这样的权限啊,造了好几个这个用户,然后呢,有的用户呢,是不是有可能就离职了,那离职离职以后呢,我们这用户怎么办呢?相应的你要做一些销毁操作,那就涉及到用户的一个删除问题。
18:08
删除的话呢,这里边儿提供了两种方式。两种方式啊,第一种方式呢,叫做drop。那很显然呢,这个很清晰的就是drop就删除的意思呗,比如说呢,我们把这个,呃,咱们诶你看这时候呢,我们是不是王五现在登录成功的。在这王五登录成功了,在这里边呢,对吧,行,那再回过来,现在的话,我们把这个王五呢给它删掉,这呢我们叫drop user。哎,这个哎叫王五是吧,哎这样子好,那这样呢,我们把这个王五呢就删掉了,那回过来的话呢,你发现呢,这个位置呢,其实他没有说呢,马上就给他退出了,那比如说我们这常执行一下叫show data。A,是吧,你看这时候他也能查看,然后当你在退出以后呢,我们再进来。进行一个验证。在这儿。哎,复制一下,然后再粘过来。那再回车好,这时候呢,大家你会发现呢,我们王五已经进不来了,因为我们把它呢已经删掉了,对吧?诶所以他就进不来了,这个job操作呢,就不用去加这个叫这个flash privilege了啊这个没必要。
19:12
呃,相当于呢,你看我们这个drop也好,Create也好,它都是这个DDL的这种操作,对吧,它就相当于是直接呢,就做了这种提交和刷新了啊。嗯,那自然改的话呢,你看这时候呢,我们需要去做flash啊,行,这是一个,我们呢就把它给删掉了,这是一种方式,还有一种方式的话呢,当然这个呢,Drop user后边你删一个逗号,再来一个,再逗号再来一个,这个也可以,就是同时呢就删除多个,呃用户也行啊,这个大家了解就行,我就不举例了。嗯,另外呢,就是删除这个优色的时候呢,你要小心一点,就是我们刚才删除王五的时候呢,后边没有写它具体的host,那默认的你就是这个百分号。默认就百分号,那就这个意思,那比如说你看回过来,我现在要删这个张三是吧,张三呢,我们这时候呢,叫drop一下这个user,张三是不是这样,这个时候呢,我们要删的话呢,实际上是把他给删掉了。
20:04
啊,那如果说你要想删他呢,那这时候你要注意我们还得是艾特一下,是不是加上这个叫local host呀,来回撤一下这个就删掉了,然后我们再去show一下。呃,Select一下好,但是你看我们这个呢,是不是留着呢。你看就是注意一下我们这个小细节问题OK。还有一种这个删除方式呢,用的叫delete,这个我们了解一下就行啊,我就不演示了啊,因为这块呢,我们也不是推荐用这种方式,这个delete什么意思啊,就是我们现在知道删除这个创建也好,呃,就就是创建是吧,创建好以后的话呢,我们在这个优色表里边是不是就能找到咱们创建这个用户了,那我们说现在想删除用户的话呢,是不是可以考虑呢?就把user表中的这一条记录给删掉就可以了。那就相当于比如说我们删除这个张三,他那就是就这样写呗,我就不执行了哈,我就演示一下,就可以delete from一下。所有同学应该都会写这个user where,咱们的user等于,这个user是字段的意思,就是张三呗,然后and,这个host等于。
21:08
是不是我们这样写一下,我一回车就把这条记录呢给删掉了。这个就是最简单的我们说的这个delete一个操作了。嗯,OK,那这个操作呢,这种方式呢,我们不推荐,为什么呢?那这个呢,我们说一下,就是我们通过这种方式呢,做了一个删除系统呢,它是可能会有残留的。啊,因为呢,我们在创建一个用户的时候呢,它不光是在咱们这个user表当中去添加了一条信息,它其实还涉及到有其他的一些问题的。啊,其他一些问题,包括权限的一些问题等等的,所以说我们要是只是从这个优色表里边儿把这条记录给干掉的话呢,他的删除是不干净的。啊,就是有残这个这个残留对吧,那建议大家呢,用这个照优色的方式。啊,其实这也很好理解,就跟说咱们删一个软件一样,建议大家的话呢,你是不是举个例子,比如说我们这个彩二这个软件不想用了,它可能会有一个就是专门叫卸载,或者呢,大家你用这个控制面板去卸载,它就类似于我们这个job的方式。
22:02
那还有一种方式呢,就是大家你找到我们这个彩安装的,比如我装在D盘下某个目录下,你直接把那个文件夹给删掉了,就是暴力删除是吧,那有点类似于我们这个就只是这样一样,他可能会在比如说一些注册表里边啊,还会有些残留的信息的。那就是这样一个问题。好,嗯,这块呢,就是咱们关于这个用户的基本的一个创建修改和删除,好下面的话呢,我们来看一下这关于密码的问题。
我来说两句