实验3 数据库安全性与完整性控制实验(预备知识:第4章;分值:16分;需辅导教师评分)
1.实验目的
练习安全性授权方法、安全性和完整性查看的操作方法。
2.实验内容
【实验3-1】使用create user创建用户,创建单个用户teacher,创建两个用户teacher1和student。
【实验3-2】通过直接操作MySQL用户表创建用户,创建单个用户teacher2,创建两个用户teacher3和student2(请注意,新版的MySQL可能不支持使用此方法创建新用户)。
【实验3-3】新建一个terminal窗口,使用mysql –u –h -p方式登录teacher。
【实验3-4】再次新建一个terminal窗口,使用mysql –u –h -p方式登录student。
【实验3-5】使用GRANT语句对用户student赋予所有数据库所有表的insert权限和update权限。
【实验3-6】使用GRANT语句对用户student赋予school数据库所有表的select权限。国开形考答案请进:opzy.net或请联系微信:1095258436
【实验3-7】使用GRANT语句对用户student赋予school数据库stuinfo表的create访问权限。
【实验3-8】使用GRANT语句对用户student赋予school数据库stuinfo表的stuno列上的select访问权限。
【实验3-9】使用GRANT语句对用户student赋予s所有数据库所有表的select访问权限,并设定student每小时最多可使用select操作访问数据库的次数。
【实验3-10】查看表INFORMATION_SCHEMA.USER_PRIVILEGES中有关student的信息,查看user表中的内容信息。
【实验3-11】查看表INFORMATION_SCHEMA.SCHEMA_PRIVILEGES,找到student在school数据库下拥有的权限。
【实验3-12】查看表INFORMATION_SCHEMA.TABLE_PRIVILEGES,查找school数据库中stuinfo数据表相关的表权限。
【实验3-13】查看表INFORMATION_SCHEMA.COLUMN_PRIVILEGES,查找用户sutdent的其中一条记录,其数据库为school,表名为stuinfo,列名为stuno,查看其授予权限类型。
【实验3-14】首先进入school数据库,如果没有,创建一个school数据库。
创建stuinfo表,包括stuno varchar(10)(加非空约束和主键约束)、stuname varchar(8)、stubir date、stuage int。
创建表course,包括courno varchar(3)(非空约束)、courname varchar(10)、schyear date(非空约束)、credit int,主键为课程号courno和学年schyear。
创建stuandcour表,包括stuno varchar(10)、courno varchar(3)、chono varchar(10),定义其主键为选课号chono,stuno为外键,参考stuinfo中的stuno列。
上述操作完成后,继续向stuandcour数据表中添加新的字段schyear date,添加外键(courno,schyear)参照course表中的courno,并删除时置空值。
【实验3-15】查看表INFORMATION_SCHEMA.TABLES——存放数据库中所有数据库表信息,所得到的记录值有很多条,然后观察其内部字段表示,进一步筛选表名为stuinfo的记录,school数据库stuinfo表的所有基本信息都在这里描述。
【实验3-16】查看表INFORMATION_SCHEMA.TABLE_CONSTRAINTS——存放表中所存在的约束信息。进一步筛选表名为stuandcour的记录信息,可以看到关于该表有三条约束信息,与我们设定的一样,其拥有两个外键和一个主键。尽管这三种约束涉及四个列字段,但是基于表层面还是三个约束,因为有一个外键是由两个列组成的。
【实验3-17】查看表INFORMATION_SCHEMA.KEY_COLUMN_USAGE——存放数据库里所有具有约束的键信息,然后通过对表名筛选,选出表stuandcour的所有以列为单位的约束信息,通过观察可以得出该查询结果与table级别约束的查询结果个数不同,这里出现四个结果,列名COLUMN_NAME部分涉及stuandcour表中所有约束包含的全部列。据我们所知,stuandcour表的主键为chono,为第一行结果;第一个外键只有一列,该列为stuno,出现在第二行结果;第二个外键含有两列,分别为courno、schyear,出现在第三行、第四行。
3.实验要求
(1)所有操作均在命令行或者MySQL Workbench中完成。
(2)将操作过程以屏幕抓图的方式复制,形成实验文档,并对照本章内容写出分析报告。