服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL权限控制和用户与角色管理实例分析讲解

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

2022-12-06 15:35菜到极致就是渣 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权限控制和用户与角色管理实例分析讲解

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

三、权限控制

权限控制,概念就不多说了,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权限控制和用户与角色管理实例分析讲解

四、角色管理

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();

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

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

激活角色语句:

set default all to + 用户名

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

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

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

继续说例子:

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用户登录数据库

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

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

revoke r1 from 's1';

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

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

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

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

原文链接:https://blog.csdn.net/gaoqiandr/article/details/128032375

延伸 · 阅读

精彩推荐
  • MysqlMysql中replace与replace into的用法讲解

    Mysql中replace与replace into的用法讲解

    今天小编就为大家分享一篇关于Mysql中replace与replace into的用法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随...

    CODETC5822019-06-24
  • Mysql生产环境MySQL索引时效的排查过程

    生产环境MySQL索引时效的排查过程

    这篇文章主要介绍了生产环境MySQL索引时效的排查过程,文章根据SQL查询耗时特别长,看了执行计划发现没有走索引的问题展开详细介绍,需要的朋友可以参...

    那海蓝蓝8062022-10-18
  • MysqlMySQL 复制表详解及实例代码

    MySQL 复制表详解及实例代码

    这篇文章主要介绍了MySQL 复制表详解及实例代码的相关资料,需要的朋友可以参考下...

    MYSQL教程网4452020-07-16
  • Mysql详解MySQL Workbench使用教程

    详解MySQL Workbench使用教程

    这篇文章主要介绍了详解MySQL Workbench使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    Mikasa84602021-04-12
  • MysqlMysql中日期和时间函数应用不用求人

    Mysql中日期和时间函数应用不用求人

    Mysql中日期和时间函数应用不用求人,学习mysql的朋友可以参考下。 ...

    mysql教程网4192019-11-11
  • MysqlMySQL8.0 DDL原子性特性及实现原理

    MySQL8.0 DDL原子性特性及实现原理

    这篇文章主要介绍了MySQL8.0 DDL原子性特性及实现原理,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下...

    天士梦4382020-11-19
  • Mysqlmysql中操作表常用的sql总结

    mysql中操作表常用的sql总结

    这篇文章主要给大家介绍了mysql中操作表常用的sql的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    书中黄金屋11222021-03-18
  • Mysqlmysql数据库无法被其他ip访问的解决方法

    mysql数据库无法被其他ip访问的解决方法

    这篇文章主要给大家介绍了关于mysql数据库无法被其他ip访问的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价...

    Summer的小西瓜3072020-08-13