第一范文网 - 专业文章范例文档资料分享平台

北邮数据库实验五 数据库完整性与安全性实验

来源:用户分享 时间:2025/8/26 19:05:44 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

(2) 分别用root用户和新定义的用户访问学生数据库,并对其中的学生表数据进行修改;

root超级用户登录:

lqy3用户登录:

Root超级用户查询及修改课程信息:

Lqy3 用户查询及修改课程信息,因为lqy3用户仅有读权限,所以可以查询数据库,但是不能够对数据库中的信息进行修改。

(3) 再次用此用户访问学生数据库,并对其中的学生表数据进行修改。

登录root用户,授予lqy3用户写权限:

再次用lqy3用户登录,更改课程信息,成功。

实验总结

1、实现参照完整性约束时遇到的问题

最初建立外键时sql语句错误,错误信息是“cannot add or update a child row: a foreign key constraint fails”,原因在于:查询优化实验中,对sc表插入了三个元组,sno的值为10111,而该值并没有在student表中存在。参照完整性约束的规定是:若M是关系S中的一属性组,且M是另一关系Z的主关键字,则称M为关系S对应关系Z的外关键字。若M是关系S的外关键字,则S中每一个元组在M上的值必须是空值或是对应关系Z中某个元组的主关键字值。因此,存在三个sno='10111'的元组,而student表中并不存在sno='10111'的学生信息,相当于三个不存在的学生却拥有成绩表。这显然是不合理的。因此只要将这三行元组删除即可。

2、定义存储过程中遇到的问题

注意要先更改结束符,因为存储过程中的sql语句以通用的分号为结束符,其作为定义存储过程的sql语句的一部分,会引发语句错误。

3、定义触发器时遇到的问题

使用create trigger 语句创建触发器是可以成功的,但是向student插入记录,触发触发器的操作时,出现了循环的错误信息,后来将student表复制了一份,重写create trigger 语句,定义触发器为:在对旧表student进行插入操作之前,更新new_student表,使每一元组的bdate增加一天。

4、定义新的登陆账号、数据库用户遇到的问题

grant和create均可创建用户,但注意创建的用户是基于所有主机(@'%')的。另外在命令行创建了用户,可以使用flush privileges更新权限表,而不用重新登录。

北邮数据库实验五 数据库完整性与安全性实验.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9nq0h9wzzc2xzhv2l5bh_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top