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

 更新时间:2022年12月01日 10:22:28   作者:菜到极致就是渣  
用户经认证后成功登录数据库,之后服务器将通过系统权限表检测用户发出的每个请求操作,判断用户是否有足够的权限来实施该操作,这就是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权限控制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用frm和ibd文件恢复mysql表数据的详细过程

    利用frm和ibd文件恢复mysql表数据的详细过程

    总是遇到mysql服务意外断开之后导致mysql服务无法正常运行的情况,使用Navicat工具查看能够看到里面的库和表,但是无法获取数据记录,提示数据表不存在,所以本文给大家介绍了利用frm和ibd文件恢复mysql表数据的详细过程,需要的朋友可以参考下
    2024-04-04
  • MySQL触发器实现两表数据同步的代码详解

    MySQL触发器实现两表数据同步的代码详解

    在数据库应用中,我们经常需要对数据进行某些操作,并在操作完成后进行相应的处理,这时候,可以使用触发器来实现这些功能,MySQL提供了强大的触发器功能,本文将给大家详细介绍MySQL触发器实现两表数据同步,需要的朋友可以参考下
    2023-12-12
  • Windows版mysql 8.0.28 安装配置方法图文教程

    Windows版mysql 8.0.28 安装配置方法图文教程

    这篇文章主要为大家详细介绍了Windows版mysql 8.0.28 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 利用Prometheus与Grafana对Mysql服务器的性能监控详解

    利用Prometheus与Grafana对Mysql服务器的性能监控详解

    Prometheus是源于 Google Borgmon的一个开源监控系统,用 Golang开发。被很多人称为下一代监控系统。Grafana是一个开源的图表可视化系统,简单说图表配置比较方便、生成的图表比较漂亮。下面就介绍了利用Prometheus与Grafana对Mysql服务器性能监控的方法。
    2017-03-03
  • mysql事务隔离级别详解

    mysql事务隔离级别详解

    MySQL事务隔离级别是指在多个事务同时执行时,数据库系统如何处理这些事务之间的相互影响。MySQL提供了四种隔离级别:读未提交、读已提交、可重复读和串行化。每种隔离级别都有其优缺点,需要根据具体情况选择合适的级别。
    2023-06-06
  • MySQL中JSON_CONTAINS函数详细用法示例​及场景

    MySQL中JSON_CONTAINS函数详细用法示例​及场景

    这篇文章主要介绍了MySQL中JSON_CONTAINS函数详细用法示例​及场景的相关资料,MySQL JSON_CONTAINS检查目标JSON是否包含搜索值,文中将用法介绍的非常详细,需要的朋友可以参考下
    2025-06-06
  • Mysql空值处理函数详解

    Mysql空值处理函数详解

    这篇文章主要给大家介绍了关于Mysql空值处理函数的相关资料,在MySQL数据库中,空值问题是经常遇到的一个问题,空值是指在某个字段中没有数据或者数据为NULL,需要的朋友可以参考下
    2023-08-08
  • mysql的计划任务与事件调度实例分析

    mysql的计划任务与事件调度实例分析

    这篇文章主要介绍了mysql的计划任务与事件调度,结合实例形式分析了mysql计划任务与事件调度相关概念、原理、用法与操作注意事项,需要的朋友可以参考下
    2019-12-12
  • Mysql数据库增量备份的思路和方法

    Mysql数据库增量备份的思路和方法

    MySQL数据库增量备份,在这之前修改我们的数据库配置文件/etc/my.cnf开启bin-log日志功能即可,下面小编给大家分享Mysql数据库增量备份的思路详解,一起看看吧
    2017-09-09
  • MYSQL 创建函数出错的解决方案

    MYSQL 创建函数出错的解决方案

    在程序开发过程中,大家有没有遇到过mysql函数不能创建,我是遇到过,是一个很麻烦的问题,上网搜了些相关资料,整理在一起了,供大家参考,帮助那些需要帮助的朋友
    2015-08-08

最新评论