MySQL安全性语言

时间:2021-11-21 20:13:51

文章为作者原创,未经许可,禁止转载。    -Sun Yat-sen University 冯兴伟

实验2:安全性语言

安全性实验包含两个实验项目,其中1个为必修,1个为选修。自主存取控制实验为设计型实验项目,审计实验为验证型实验项目,选做一个即可。

实验2.1 自主存取控制实验

(1)实验目的

掌握自主存取控制权限的定义和维护方法。

(2)实验内容和要求

定义用户、角色,分配权限给用户、角色,回收权限,以相应的用户名登录数据库验证权限分配是否正确。选择一个应用场景,使用自主存取控制机制设计权限分配。可以采用两种方案。方案一:采用SYSTEM超级用户登录数据库,完成所有权限分配工作,然后用相应用户名登陆数据库以验证权限分配正确性;验证权限分配之前,请备份好数据库;针对不同用户所具有的权限,分别设计相应的SQL语句加以验证。

(3)实验重点和难点

实验重点:定义角色,分配权限和回收权限。

实验难点:实验方案二实现权限的再分配和回收。

a)         创建用户fengxingwei,密码为1993,主机登陆为localhost:

MySQL安全性语言

在workbench中查看可以看到用户fengxingwei存在,说明创建成功。

MySQL安全性语言

输入show grants for 'fengxingwei'@'localhost'; 查看用户fengxingwei的权限暂时如下:

MySQL安全性语言

使用system超级用户root给用户fengxingwei赋予所有权限all privileges

MySQL安全性语言

继续show grants for 'fengxingwei'@'localhost';查看可以发现用户fengxingwei权限如下:

MySQL安全性语言

b)        退出root,以fengxingwei作为用户登陆。

MySQL安全性语言

MySQL安全性语言

c)         开始验证分配权限正确性。在root下原本的4个数据库及权限如下:

MySQL安全性语言

在fengxingwei用户下可以发现其拥有和root一样的权限,可以看到root创建的4个数据库。

MySQL安全性语言

d)        以用户fengxingwei登陆,进行select权限检查,下图可以看出select成功。

MySQL安全性语言

进行insert权限检查,下图可看出insert成功:

MySQL安全性语言

MySQL安全性语言

进行update权限检查,可以通过下图看出update成功:

MySQL安全性语言

MySQL安全性语言

进行delete权限检查,可以通过下图看出delete成功:

MySQL安全性语言

MySQL安全性语言

e)         登陆root,回收root给fengxingwei的权限

MySQL安全性语言

可以验证fengxingwei其权限被收回:

MySQL安全性语言

切换以fengxingwei登录,可以看到已无权看到root创建的数据库。

MySQL安全性语言