大家好,我是jacky,很高兴继续跟大家学习MySQL数据分析实战,本节课的主题是用户管理和权限管理;

在分享之前,jacky在不厌其烦的强调一下:学习任何一门学科和技能,最重要的是捋清逻辑,我们要知道,一个知识点的出现,一定是有它现实意义的,一定是解决了当前工作的生活中的某项痛点,所以它才会出现,所以我们才要去研究它,应用它;


(一)逻辑梳理

好,那么回归我们这次课分享的主题:用户管理和权限管理;什么意思呢?顾名思义,用户管理就是通过SQL语句管理我们MySQL这个软件的用户,好,那么权限管理就是通过SQL语句管理我们当前MySQL用户中增删改查的权限;可能有朋友会问了,说jacky你说的也太直白了吗?我好像记得书本中和其他资料课程把它叫做数据库控制语言DCL;的确是这样,但是如果我把今天的主题换为数据库控制语言,这样跟朋友们讲,然后在把相应的SQL语句罗列出来,大家会听的懂吗?数据库控制语言出现的背景是什么呢,它的企业应用意义是什么呢?大家都会是一头雾水,所以有的资料说MySQL的逻辑性不强,我是及其不认同的;


那么我们这次课,就是要回到下面2个问题:

1.用户管理和权限管理的出现的背景是什么?

2.如何编写用户管理和权限管理的SQl语句来解决实际问题?

(二)用户管理和权限管理

  • 关于用户管理和权限管理的出现背景,也就是为什么MySQL要有用户管理和权限管理这种机制,我们先看下逻辑导图:

2.1 背景

关于用户管理和权限管理被MySQL这款产品设计出来的背景,我们还是拿前面手机销售公司举例,学习了数据库设计,我们也模拟创建了手机销售公司的数据库,jacky说数据库是一套共享系统,正因为共享,在实际业务中我们才能提高数据管理效率,是吧!

但任何事情都有两面性是吧,有好的一面,一定有坏的一面,也是由于我们的数据库是共享的,这也就意味这可能一些心怀不轨的人会串改数据库数据,导致整个数据库系统的混乱,那么我们有什么办法,避免这件事的发生呢?或者说如何提高数据库的安全性呢?

大家思考一下,怎样才能提高数据库的安全性呢?我们说提高安全性的途径有两个,第一个是控制能访问数据库的人,也就是不是不是随便的任何人都能操作和访问数据库的;第二个措施途径是控制使用数据库人的权限,也就是说我即使让你使用了数据库,我也要限制你使用的权限,比如说我限制你只能是可读的,你就不能编辑数据库了,以上两点就控制住初步控制住数据库的安全性了,那么第一个措施就是我们说的用户管理,第二个措施就是权限管理,那具体在MySQL中我们是如何实现的呢?就是通过SQL语句设定用户管理和权限管理,下面jacky分别讲解:

2.2 用户管理的SQL实现

大家还记得我们前面是怎么样连接mysql客户端的吧,我们输入的指令是不是mysql -u root -p,是吧;这个root就是我们当前系统的用户名,这个root用户拥有对整个MySQL服务器完全控制的权限,所以为了避免别有用心的人恶意破坏数据库,我们在实际工作中,要尽可能的不用或者少用root账号登陆系统,这时,我们就要创建不同用户账号,jacky给大家总结了用SQL语句实现用户管理的2大步骤(如下)

2.2.1 步骤一:查看当前数据库系统现有用户

在我们创建用户之前呢,我们第一步要先查看当前数据库系统的现有用户,这一步的意义是:当我们创建完用户之后,接下来才可以检验我们是否把用户成功的创建在我们的数据库中,那么如何查看当前数据库系统下有多少用户呢?

show databases;

  • 在root 用户当前的数据库库下,有一个mysql表;
use mysql;
show tables;

  • 我们看到mysql表的最下面有一个user表,user表的数据量是比较大,如果查询user表的全部数据,在我们直观的视觉上是比较难区分的(select * from user;),那么我们看下user表一共有多少列
desc user;

我们接下来,只选择host 和user列,我们查询下;

select host,user from user;

  • host列表示我们用的是哪台机器登陆,user表示的是我们用的哪个用户名;

    • 对于host 列来说,127.0.0.1,::1和localhost都是本地的意思,它们是一样的,127.0.0.1是ip,localhost是域名,::1是缩写;

好,通过上面我们就知道了,我们我们当前的用户名都有什么,以及它通过哪台机器登陆的,知道了我们用户名的位置,接下来我们就能给我们数据库创建用户了;

2.2.2 步骤二:创建用户

  • 初学者创建用户容易陷入的误区

    • 在前面我们在SQL热身中,我们记不记得我们如何给表中插入数据
insert into 表名(nid,name,pwd) values(1,'jacky','123')

那大家思考一下,我们能不能按照上面得方法给user表创建一个用户?答案是可以的,我们在后面课程SQL基础操作里,会给大家总结,上述语句是给表中插入数据的的通用方法,所以用insert into 表名(… …) values(… ..)是完全没问题的,但是,但是,user这张表至关重要,如果我们插入错误,我们user表就登陆不上去了,如果插入错误,会对MySQL软件造成严重影响;

所以对于这种特殊的表,jacky不推荐用上面的命令,我们聪明的开发人员为创建用户的这张特殊的表指定了特定的命令

  • 用户管理的特定命令,我们说下面的SQL语句对于表来说,不是普遍使用的,只是针对用户管理这个特殊的操作定制的,是特定的;

    • 所以,jacky说下面的用户的增、删、改的SQL语句,大家不用记,因为它不是普遍使用的,大家在具体工作环境中,找到自己的笔记,拿来直接用就可以,这就是jacky在本系统课程开篇说的,学习知识的时候,要知道学什么,不学什么,记住什么,不记住什么,下面jacky给大家演示一下,这样有助于大家的理解
--新建用户(增)
create user '用户名'@'IP地址' identified by '密码'; --删除用户(删)
drop user '用户名'@'IP地址'; --修改用户(改)
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
--修改密码(改)
set password for '用户名'@'IP地址'= Password('新密码');

2.3 权限管理的SQL实现

  • 上面我们创建新用户的时候,默认新创建的用户什么权限都没有;
--查看权限
show grants for '用户'@'IP地址' --授权
grant 权限 on 数据库.表 to '用户'@'IP地址' --取消权限
revoke 权限 on 数据库.表 from '用户'@'IP地址'
  • 关于上面权限替换

    • select 只能查
  • 关于数据库.表替换

    • 数据库.* 这个数据库里所有的表
    • *.* 所有的库所有的表

最后jacky总结一下:对于一个数据分析师来说,数据库的用户管理和权限管理的SQL代码,大家理解就好,用的时候,能快速查阅资料运用就可以的,但对于数据库管理员也就是DBA来说,jacky说的这部分知识是重中之重,大家要熟练掌握,好,这就是这此课我们要说的内容,我们下次课见

MySQL数据分析-(9)库操作补充:用户管理和权限管理的更多相关文章

  1. MySQL 用户管理与权限管理

    MySQL 用户管理与权限管理 -- 操作环境mysql> show variables like 'version';  +---------------+--------+| Variabl ...

  2. MySQL5.7用户创建及权限管理

    一 用户.权限管理 1.1 用户 作用: 登录,管理数据库逻辑对象 定义: 用户名@'主机值' 主机值可以是主机名或IP地址,主机值中允许使用通配符 root@'10.0.0.%' root@'%' ...

  3. (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理

    用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...

  4. Lniux 入门:03 用户及文件权限管理

    1.1 实验内容 Linux 中创建.删除用户,及用户组等操作. Linux 中的文件权限设置. 1.2 实验知识点 Linux 用户管理 Linux 权限管理 通过第一节课程的学习,你应该已经知道, ...

  5. Linux用户及文件权限管理

    Linux用户及文件权限管理

  6. 用户管理_组管理_权限管理.ziw

    2017年1月10日, 星期二 用户管理_组管理_权限管理 用户管理: useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage ...

  7. 实验楼学习linux第一章第三节用户及文件权限管理

    用户及文件权限管理 常用命令 查看用户 whoami 创建用户 sudo adduser 用户名 切换账户 su 用户名 删除账户 sudo deluser 用户名 --remove-home 查看用 ...

  8. WordPress用户角色及其权限管理编辑插件:User Role Editor汉化版

    如果Wordpress默认的用户角色及权限不能满足您的需求,又觉得修改代码编辑用户权限太麻烦.那不妨试试User Role Editor,Wordpress用户角色及其权限管理编辑插件. User R ...

  9. solaris用户与文件权限管理

    此文章已于 20:45:28 2015/3/22 重新发布到 zhuxuekui3 solaris用户与文件权限管理1 类别    「网站分类」Oracle 一.用户与用户组管理 三种用户:超级用户. ...

随机推荐

  1. Idea查看一个类和子类(实现类)的结构图

    选择一个类:右键选择Diagrams-show Diagrams(show Diagrams popup表示悬浮当前窗口) 进入下面类似下面的界面: 如果想查看某个类或接口的子类: 先查看自己本地设置 ...

  2. input 默认提示文字 样式修改(颜色,大小,位置)

    input::-webkit-input-placeholder{ color:red; font-size:20px; ...... }

  3. CVE-2019-0214: Apache Archiva arbitrary file write and delete on the server

    CVE-2019-0214: Apache Archiva arbitrary file write and delete on the server Severity: Medium Vendor: ...

  4. golang包管理工具

    软件开发中,不可避免的会使用到第三方库,因此包管理工具可以极大的方便开发者管理第三方依赖,避免掉入"依赖地狱". 作为google强大背书的golang语言,golang官方包管理 ...

  5. 【导出导入】IMPDP table_exists_action 参数的应用

    转自:https://yq.aliyun.com/articles/29337 当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:a.忽略(SKIP,默认行为 ...

  6. 【vue开发】vue导出Excel表格教程&demo

    前端工作量最多的就是需求,需求就是一直在变,比如当前端数据写完之后,需要用Excel把数据下载出来:再比如前端在没有数据库想写些demo玩时,也是很好的选择. 第一步安装依赖包,修改配置 1.装依赖: ...

  7. Java学习第一天之简单了解java语言及开发环境的安装

    一.初步了解Java语言 Java语言是由Sun公司的James Gosling创造的一门面向对象的高级语言. 2009年4月20日,Sun公司被Oracle以总价值约为74亿美元的价格收购,Java ...

  8. OpenCV读取图像问题:OpenCV(3.4.3) D:\Build\OpenCV\opencv-size.width0 && size.height0 in function 'cvimshow'

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/83280067 - 问题与解决 最近正在学OpenCV,发现 ...

  9. idou老师教你学Istio 07: 如何用istio实现请求超时管理

    在前面的文章中,大家都已经熟悉了Istio的故障注入和流量迁移.这两个方面的功能都是Istio流量治理的一部分.今天将继续带大家了解Istio的另一项功能,关于请求超时的管理. 首先我们可以通过一个简 ...

  10. Ubuntu系统---报错Assertion '0' failed

    Ubuntu系统---报错Assertion '0' failed YOLO V3,CUDA Error: out of memory darknet: ./src/cuda.c:36: check_ ...