实验2:安全性语言

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

实验2.1自主存取控制实验

(1)实验目的

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

(2)实验内容和要求

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

(3)实验重点和难点

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

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

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

mysql创建安全性数据库 mysql安全性控制语句_mysql+安全性语言实验

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

mysql创建安全性数据库 mysql安全性控制语句_mysql创建安全性数据库_02

输入show grants for [email protected]; 查看用户fengxingwei的权限暂时如下:

mysql创建安全性数据库 mysql安全性控制语句_权限分配_03

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

mysql创建安全性数据库 mysql安全性控制语句_mysql+安全性语言实验_04

继续show grants for [email protected];查看可以发现用户fengxingwei权限如下:

mysql创建安全性数据库 mysql安全性控制语句_存取控制_05

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

mysql创建安全性数据库 mysql安全性控制语句_权限分配_06

mysql创建安全性数据库 mysql安全性控制语句_mysql创建安全性数据库_07

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

mysql创建安全性数据库 mysql安全性控制语句_权限分配_08

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

mysql创建安全性数据库 mysql安全性控制语句_mysql+安全性语言实验_09

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

mysql创建安全性数据库 mysql安全性控制语句_mysql创建安全性数据库_10

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

mysql创建安全性数据库 mysql安全性控制语句_数据库_11

mysql创建安全性数据库 mysql安全性控制语句_权限分配_12

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

mysql创建安全性数据库 mysql安全性控制语句_权限分配_13

mysql创建安全性数据库 mysql安全性控制语句_存取控制_14

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

mysql创建安全性数据库 mysql安全性控制语句_mysql创建安全性数据库_15

mysql创建安全性数据库 mysql安全性控制语句_数据库_16

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

mysql创建安全性数据库 mysql安全性控制语句_权限分配_17

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

mysql创建安全性数据库 mysql安全性控制语句_数据库_18

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

mysql创建安全性数据库 mysql安全性控制语句_mysql+安全性语言实验_19