MySQL数据库 - 授权与撤销授权

前言

我们知道,DCL: 用户的管理 ,和权限的使用。上一篇博客,我简述了用户的创建,删除,以及修改用户密码,今天,这篇博客,我将简述 “授权方式”

正文 

注意:我们新创建的用户,默认情况下,是不具有任何权限的,所以这才需要我们设置权限。

查看权限

语法:grant 权限列表 on 库.表 to 用户名@'ip' identified by "密码";

案例

注意:上图中ALL表示允许做任何事,而USAGE则表示只允许登录,其他什么也做不了。下面切换为用户lyn登录,并试图创建数据库

发现,报错了,这就是我们设置了只允许登录权限,所以就无法创建数

授予权限

语法:grant 权限列表 on 库.表 to 用户名@'ip' identified by "密码";

案例1

注意:上面的语句表示将所有数据库的所有权限授权给lyn这个用户,允许lyn用户在123.123.123.123这个 IP 进行远程登录,并设置lyn用户的登录密码为123456

案例2 

上面语句表示将mysql_db数据库中的sys_user表的查询权限给qjh用户。最后查看权限中也表示该用户对mysql_db数据库sys_user表有查询权限。

注意:授权操作只能是root用户来操作;grant给用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效;授权后一定要刷新权限,使权限立即生效:FLUSH PRIVILEGES;

撤销权限

语法:revoke 权限列表 on 库.表 from 用户名@'ip';

特点:

1  revoke 和 grant 语法上差不多,就是将 to 改为 from。并且revoke语句中不需要跟密码设置

2     和grant一样,revoke用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

注意:revoke可以回收所有权限,也可以回收部分权限,且授权只是收回权限,用户仍可以登录。

实例

上面的撤回语句表示将用户qjh@'localhost'mysql_db数据库中对sys_user表的删除delete权限撤销了,即该用户无法对mysql_db数据库进行删除操作了。

投歌作业

第1关:数据库授权

问题:根据提示,在右侧编辑器中编写 SQL,将用户casual_user@'localhost'的密码修改为123456,并给其授所有数据库的“增改查”的权限。(连接数据库的用户名为:root,密码为:123123。)

代码如下

set password for casual_user@'localhost' = password('123456');

grant SELECT ,INSERT, UPDATE on *.* to casual_user@'localhost';

FLUSH PRIVILEGES;

第2关:数据库撤销权限

问题:在右侧编辑器中编写如下要求的 SQL:

  • 将用户user1对数据库mydb1中的table1table2的所有权限收回

  • 将用户user2对数据库mydb2中的所有表(mydb2.*)的增加、查询、更新、删除、创建、修改属性权限收回

  • 代码如下

  • revoke all on mydb1.table1 from 'user1'@'localhost';

    revoke all on mydb1.table2 from 'user1'@'localhost';

    revoke insert,select,update,create,delete,alter on mydb2.* from 'user2'@'localhost';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值