MySQL权限控制和用户与角色管理实例分析讲解

目录
  • 一、MySQL用户登录
  • 二、用户管理
  • 三、权限控制
  • 四、角色管理

一、MySQL用户登录

一般在本机上我们的登录命令:
mysql -u root -p+密码
 
这里介绍命令的作用:
-u  指定用户名
-h  指定主机地址(默认为localhost)
-p  指定用户输入的密码
-P  指定服务器的端口(默认为3306)

二、用户管理

什么是用户管理呢?在创建了一个数据库后,数据库的管理员或者是创建者可以创建用户并同时对该用户做出限制(也就是用户的权限),当其他人想要访问该数据库时,可以通过使用该用户的信息登录数据库。

1:查询用户
use mysql;
select *from user;
//nysql数据库的user表存放的是该数据库中的用户信息
2:创建用户
create user '用户名'@'主机名' identified by '密码';
//如果想选择任意主机地址
create user '用户名'@'%' identified by '密码';
3:修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
4:删除用户
drop user '用户名'@'主机名';

你即使创建了一个用户但查询数据库会发现跟之前root用户查询数据库时不一样,这时候就是关于权限了。

create user 'peter'@'%' identified by '989898';
select *from user;

三、权限控制

权限控制,概念就不多说了,MySQL中定义了许多权限,这里我们只说经常使用的。

all ,all privileges    所有权限
select                 查询数据
insert                 插入数据
update                 修改数据
delete                 删除数据
alter                  修改表
drop                   删除数据表/库/视图
create                 创建数据库/表
 
 
1、查询权限
  show grants for '用户名'@'主机名';
 
2、授予权限
  grant + 权限列表(也就是权限) + on + 数据库名或者表名+ to + '用户名'@'主机名';
 
3、撤销权限
  revoke +权限列表 + on + 数据库名/表名 + from + '用户名'@'主机名';

注意多个权限之间用逗号隔开,*号通配符表示所有。

use mysql;
select *from user;
create user '888'@'%' identified  by '1111';
grant all on exercise.* to '888'@'%';
show grants for '888'@'%';

四、角色管理

MySQL角色的引入有什么作用呢?与用户的管理的语法相同,但它的作用却不一样。在MySQL中角色的引入是为了方便管理拥有相同权限的用户,这样子可以进行统一管理。

1、角色的创建
  create role + 用户名
2、 角色的授权
  创建完角色后是空的,没有任何内容这时候就需要授权了
   grant + 权限 + on + 数据库/表名 + to + 角色
3、角色权限的收回
  revoke + 权限 + on + 数据库/表名 + from + 角色
4、 讲一个角色赋予其它角色或者是用户
   grant + 角色1 + to + 角色2 + with admin option 
   加了with admin option 表示获得权限的角色还可以吧这个权限再赋予别人,没有的话就不许了

这里举个例子感受下,不过在举例子前有个点要注意一下,创建了角色之后默认都是未被激活的,只有激活之后,被授予角色权限的用户才可以得到相应的权限。

select current_role();

显示上面的图片则显示角色未被激活。

激活角色语句:

set default all to + 用户名

后面使用查看激活语句就会变成:

哦对,该激活角色的方法并不是永久激活。永久激活的方法我并不喜欢用,因为我怕以后会把这个知识给忘了(其实就是菜)

继续说例子:

create role r1;
grant select,insert on  exercise.* to r1;
select *from user;
# 开始创建角色
create user 's1'@'%';
create user 's2'@'%';
# 查看创建角色的权限
show grants for 's1'@'%';
# 查看r1的权限
show grants for 'r1';
# 开始将角色的权限复制给用户
grant r1 to s1;
# 查看赋予的用户的权限
show grants for 's1'@'%';

使用s1用户登录数据库

发现s1用户并没有update权限,至于其他的就不一一试验了。

revoke r1 from 's1';

收回r1角色的权限后,连查看数据库的权限都没有了

对于角色的总结:角色总的来说就是权限的集合,它是为了防止出现多个用户需要相同的权限二=而反复操作的情况,记住角色不是用户,你用角色当做用户登录了数据库这是不可能的,再一次强调角色只是一个或者是多个权限的集合。

到此这篇关于MySQL权限控制和用户与角色管理实例分析讲解的文章就介绍到这了,更多相关MySQL权限控制内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL 权限控制详解

    mysql权限控制 作为一名DBA,想必大家对MySQL中的权限都不陌生,MySQL中对于权限的控制分为三个层面: 全局性的管理权限,作用于整个MySQL实例级别 数据库级别的权限,作用于某个指定的数据库上或者所有的数据库上 数据库对象级别的权限,作用于指定的数据库对象上(表.视图等)或 者所有的数据库对象上 这里,我们将mysql中的所有权限列出来,最后给出一个特殊的案例来反应mysql权限控制中的一个小bug.首先来看权限列表,权限的顺序按照首字母的顺序进行排列: •All/All Priv

  • MySQL 权限控制细节分析

    今天周天,早上懒了一会儿,起的有点儿晚,中午没事儿干,重新看了看MySQL里面的权限控制模块,再次回头看,还是有很多收获的细节,这里记录一下,方便自己后续查看.     关于权限部分的内容,之前3月11号的文章中有写过一些,今天的内容,我们使用一个一个的细节知识点来撰写(本文中所使用的MySQL版本是5.7.16),在写这些知识点之前,我们首先介绍一下MySQL的权限控制粒度.然后了解一下MySQL中客户端发起请求的时候,服务端所做的核实工作,先来看权限控制粒度: 1.全局层级 全局权限使用于给

  • MySQL 8.0用户和角色管理原理与用法详解

    本文实例讲述了MySQL 8.0用户和角色管理.分享给大家供大家参考,具体如下: MySQL8.0新加了很多功能,其中在用户管理中增加了角色的管理, 默认的密码加密方式也做了调整,由之前的sha1改为了sha2,同时加上5.7的禁用用户和用户过期的设置, 这样方面用户的管理和权限的管理,也增加了用户的安全性. MySQL8.0中,MySQL库中表的文件合并到数据根目录中的mysql.ibd中(MySQL8.0 Innodb引擎重构). 同时MySQL8.0可以使用SET PERSIST动态修改参

  • MySQL权限控制和用户与角色管理实例分析讲解

    目录 一.MySQL用户登录 二.用户管理 三.权限控制 四.角色管理 一.MySQL用户登录 一般在本机上我们的登录命令:mysql -u root -p+密码 这里介绍命令的作用:-u  指定用户名-h  指定主机地址(默认为localhost)-p  指定用户输入的密码-P  指定服务器的端口(默认为3306) 二.用户管理 什么是用户管理呢?在创建了一个数据库后,数据库的管理员或者是创建者可以创建用户并同时对该用户做出限制(也就是用户的权限),当其他人想要访问该数据库时,可以通过使用该用

  • Vue 页面权限控制和登陆验证功能的实例代码

    页面权限控制 页面权限控制是什么意思呢? 就是一个网站有不同的角色,比如管理员和普通用户,要求不同的角色能访问的页面是不一样的.如果一个页面,有角色越权访问,这时就得做出限制了. Vue 动态添加路由及生成菜单 这是我写过的一篇文章, 通过动态添加路由和菜单来做控制,不能访问的页面不添加到路由表里,这是其中一种办法. 另一种办法就是所有的页面都在路由表里,只是在访问的时候要判断一下角色权限.如果有权限就让访问,没有权限就拒绝,跳转到 404 页面. 思路: 在每一个路由的 meta 属性里,将能

  • mysql用户权限管理实例分析

    本文实例讲述了mysql用户权限管理.分享给大家供大家参考,具体如下: 本文内容: 什么是用户权限 恰当的用户权限 查看权限 修改权限 删除权限 首发日期:2018-04-19 什么是用户权限: 每个用户都有自己的用户权限,这些用户权限比如有查询表权限.修改表权限.插入表权限.新增用户权限等等. 具体的权限: 恰当的用户权限: 多数用户只需要对表进行读和写,但少数用户甚至需要能创建和删除表: 某些用户需要读表,但可能不需要更新表: 对于大多数用户,应该只提供对表的读写,不应该允许他们创建表.修改

  • Mysql数据库高级用法之视图、事务、索引、自连接、用户管理实例分析

    本文实例讲述了Mysql数据库高级用法之视图.事务.索引.自连接.用户管理.分享给大家供大家参考,具体如下: 视图 视图是对若干张基本表的引用,一张虚表,只查询语句执行结果的字段类型和约束,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变),方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性. 1.----创建视图: create view 视图名称(一般以v_开头) as 查询语句; 2.----查看视图: select * from 视图名称; 3.----删除视图: dro

  • linux用户和组命令实例分析【切换、添加用户、权限控制等】

    本文实例讲述了linux用户和组命令.分享给大家供大家参考,具体如下: 1.用户相关命令   su     切换用户        root -> 普通用户   不需要密码        普通用户之间        需要密码        普通用户->root     需要密码 newgrp 切换组身份 whoami     查看当前登录名称 id         查看用户信息 groups     查看用户组信息 chfn       设置用户备注信息 finger     查看用户备注信息

  • vue路由守卫+登录态管理实例分析

    本文实例讲述了vue路由守卫+登录态管理.分享给大家供大家参考,具体如下: 在路由文件需要守卫的path后面加上meta {path: '/home',component: home,meta:{requireAuth:true}} 在main.js里面加上 //路由守卫 router.beforeEach((to, from, next) => { console.log(to); console.log(from); if (to.meta.requireAuth) { // 判断该路由是否

  • mysql触发器之创建多个触发器操作实例分析

    本文实例讲述了mysql触发器之创建多个触发器操作.分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的.废话不多说,咱们开始正文哈. 在mysql 5.7.2+版本之前,我们只能为表中的事件创建一个触发器,例如,只能为BEFORE UPDATE或AFTER UPDATE事件创建一个触发器. mysql 5.7.2+版本解决了这样限制,并允许我们为表中的相同事件和动作时间创建多个触发器.当事件发生时,触发器将依次激活.我们来参考创建第一个触发

随机推荐