文章为作者原创,未经许可,禁止转载。 -Sun Yat-sen University 冯兴伟
实验2:安全性语言
安全性实验包含两个实验项目,其中1个为必修,1个为选修。自主存取控制实验为设计型实验项目,审计实验为验证型实验项目,选做一个即可。
实验2.1 自主存取控制实验
(1)实验目的
掌握自主存取控制权限的定义和维护方法。
(2)实验内容和要求
定义用户、角色,分配权限给用户、角色,回收权限,以相应的用户名登录数据库验证权限分配是否正确。选择一个应用场景,使用自主存取控制机制设计权限分配。可以采用两种方案。方案一:采用SYSTEM超级用户登录数据库,完成所有权限分配工作,然后用相应用户名登陆数据库以验证权限分配正确性;验证权限分配之前,请备份好数据库;针对不同用户所具有的权限,分别设计相应的SQL语句加以验证。
(3)实验重点和难点
实验重点:定义角色,分配权限和回收权限。
实验难点:实验方案二实现权限的再分配和回收。
a) 创建用户fengxingwei,密码为1993,主机登陆为localhost:
在workbench中查看可以看到用户fengxingwei存在,说明创建成功。
输入show grants for 'fengxingwei'@'localhost'; 查看用户fengxingwei的权限暂时如下:
使用system超级用户root给用户fengxingwei赋予所有权限all privileges
继续show grants for 'fengxingwei'@'localhost';查看可以发现用户fengxingwei权限如下:
b) 退出root,以fengxingwei作为用户登陆。
c) 开始验证分配权限正确性。在root下原本的4个数据库及权限如下:
在fengxingwei用户下可以发现其拥有和root一样的权限,可以看到root创建的4个数据库。
d) 以用户fengxingwei登陆,进行select权限检查,下图可以看出select成功。
进行insert权限检查,下图可看出insert成功:
进行update权限检查,可以通过下图看出update成功:
进行delete权限检查,可以通过下图看出delete成功:
e) 登陆root,回收root给fengxingwei的权限
可以验证fengxingwei其权限被收回:
切换以fengxingwei登录,可以看到已无权看到root创建的数据库。