实训五:数据库安全控制 您所在的位置:网站首页 mysql给用户授权某个数据库的所有表 实训五:数据库安全控制

实训五:数据库安全控制

2023-12-17 02:41| 来源: 网络整理| 查看: 265

授权及回收权限 第1关:授权任务描述相关知识MySql系统库中的权限表访问控制的两个阶段:授予的权限等级:MySQL 权限类型grant 语句的基本语法格式revoke 语句的基本语法格式查看权限限制权限 编程要求测试说明参考代码 第2关:授权-练习一任务描述相关知识编程要求测试说明参考代码 第3关:授权-练习二任务描述相关知识编程要求测试说明参考代码 第4关:授权-练习三任务描述相关知识编程要求测试说明参考代码 第5关:回收权限任务描述相关知识编程要求测试说明参考代码

第1关:授权 任务描述

本关任务:系统用户 root 授权 user1 用户创建数据库 teachingdb2 及其所有对象的权限

相关知识

为了完成本关任务,你需要掌握 MySQL 的权限管理。

MySql系统库中的权限表

MySql 系统库中的权限表: user:最重要的权限表,存储允许连接到服务器的账号。 db:存储用户对某个数据库的操作权限。 host:存储某个主机对数据库的操作权限。 tables_priv:对单个表进行权限设置。 columns_priv:对单个数据列进行权限设置。 columns_priv:对存储过程和存储函数进行权限设置。

访问控制的两个阶段:

1、连接核实阶段 用户试图连接 MySQL 服务器时,服务器基于用户提供的信息来验证用户身份。使用 MySQL 的 user 表进行身份核实 2、请求核实阶段 对当前用户的每个操作都进行权限检查,判断用户是否有足够的权限来执行它。 如图所示: ,

授予的权限等级:

全局层级:适用于一个给定服务器中所有的数据库。 数据库层级:适用于一个给定数据库中的所有目标。 表层级:适用于一个给定表中的所有列。 列层级:适用于一个给定表中的单一列。 子程序层级:适用于存储的子程序 ,可以被授权为全局层级和数据库层级。

MySQL 权限类型

如图所示: ,

,

grant 语句的基本语法格式

grant 语句的基本语法格式:

grant priv_type [(column_list)] //要设置的权限项; [,priv_type[(column_list)]][,.....n] on {tbl_name|*|*.*|db_name.*|db_name.tbl_name} //对象类型; to user[identified by [password] ‘password’] [,user[identified by [password] ‘password’]][,....n] [with grant_option] //可以将该用户的权限转移给其他用户;

示例:使用 grant 语句创建一个新用户 test1,密码为 test123,该用户对所有的数据又查询、插入的权限,并授予 grant 权限。

grant select,insert on *.* to test1@localhost identified by ‘test123’ with grant option; revoke 语句的基本语法格式

revoke 语句的基本语法格式:

revoke priv_type [(column_list)][,priv_type[(column_list)]][,.....n] on {tbl_name|*|*.*|db_name.*|db_name.tbl_name} from ‘username’@’hostname’[,‘username’@’hostname’][,...n]

使用 revoke 语句收回收回 test1 用户对 course 数据库中 student 表的 update 权限示例:

revoke update on course.student from test1@localhost; 查看权限

语法:

show grants for username@hostname

例子: 查用用户 test1 的权限信息

show grants for test1@localhost; 限制权限

max_queries_per_hour count:表示每小时可以查询数据库的次数。 max_connections_per_hour count:表示每小时可以连接数据库的次数 max_updates_per_hour count:表示每小时可以修改数据库的次数。

示例:授予 test1 每小时可以发出的查询数为 50 次,每小时可以连接数据库 10 次,每小时可以发出的更新数为 5 次。

grant all on *.* to test1@localhost identified by ‘test123’ with max_queries_per_hour 50 with max_connections_per_hour 10 with max_updates_per_hour 5; 编程要求

根据提示,在右侧编辑器补充代码,系统用户 root 授权 user1 用户创建数据库 teachingdb2 及其所有对象的权限

测试说明

编写代码后,点击测评即可。

开始你的任务吧,祝你成功!

参考代码 use teachingdb; /****请在此编写代码,操作完毕之后点击评测******/ /**********Begin**********/ grant all on teachingdb2.* to 'user1'@'localhost' /**********End**********/ 第2关:授权-练习一 任务描述

本关任务:给 user1 授予在 teachingdb 所有对象上的 SELECT 权限,并使该用户具有给其他用户授予相同权限的权限。

相关知识

见上一关

编程要求

根据提示,在右侧编辑器补充代码,给 user1 授予在 teachingdb 所有对象上的 SELECT 权限,并使该用户具有给其他用户授予相同权限的权限。

测试说明

点击右上角的重置命令行 先点击命令行,来到命令行界面 , 然后点击右侧的重置命令行按钮,进行重置 ,

编写代码后,点击测评即可。

开始你的任务吧,祝你成功!

参考代码 use teachingdb; /****请在此编写代码,操作完毕之后点击评测******/ /**********Begin**********/ grant SELECT on teachingdb.* to 'user1'@'localhost' WITH GRANT OPTION /**********End**********/ 第3关:授权-练习二 任务描述

本关任务:给 user1 和 user2 授予 stuednt 表上的所有权限。

相关知识

见上一关

编程要求

根据提示,在右侧编辑器补充代码。给 user1 和 user2 授予 student 表上的所有权限。

测试说明

点击右上角的重置命令行 先点击命令行,来到命令行界面 , 然后点击右侧的重置命令行按钮,进行重置 ,

编写代码后,点击测评即可。

开始你的任务吧,祝你成功!

参考代码 use teachingdb; /****请在此编写代码,操作完毕之后点击评测******/ /**********Begin**********/ GRANT ALL PRIVILEGES ON `teachingdb`.`student` TO 'user1'@'localhost' /**********End**********/ 第4关:授权-练习三 任务描述

本关任务:给 user2 授予 score 表 grade 字段上的UPDATE权限。

相关知识

见上一关

编程要求

根据提示,在右侧编辑器补充代码。给 user2 授予 score 表 grade 字段上的 UPDATE 权限。

测试说明

本关卡不用重置命令行:编写代码后,点击测评即可。

开始你的任务吧,祝你成功!

参考代码 use teachingdb; /****请在此编写代码,操作完毕之后点击评测******/ /**********Begin**********/ GRANT USAGE ON *.* TO 'user2'@'localhost' IDENTIFIED BY PASSWORD '*B2B366CA5C4697F31D4C55D61F0B17E70E5664EC' /**********End**********/ 第5关:回收权限 任务描述

本关任务:从 user1@localhost 用户收回查询 teachingdb 所有对象的SELECT权限。

相关知识

见第一关

编程要求

根据提示,在右侧编辑器补充代码,从 user1@localhost 用户收回查询 teachingdb 所有对象的 SELECT 权限。

测试说明

点击右上角的重置命令行 先点击命令行,来到命令行界面 , 然后点击右侧的重置命令行按钮,进行重置 ,

编写代码后,点击测评即可。

开始你的任务吧,祝你成功!

参考代码 use teachingdb; /****请在此编写代码,操作完毕之后点击评测******/ /**********Begin**********/ revoke select on teachingdb.* from user1@localhost /**********End**********/


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有