触发器一种特殊类型的存储过程,当使用Insert、Delete、Update语句对数据库表中的数据进行操作时,触发器将自动执行。触发器的工作原理,它是触发器与表紧密联系在一起,该表也称为触发器表。在对表进行插入、删除和更新操作时,若该表有相应操作类型的触发器,则触发器会自动触发执行。程序开发人员利用其工作原理来设计了一种新的机制,就是把数据库系统提供的访问控制功能作为第一层的安全保护,再构建一层访问控制机制作为第二层安全控制机制。我们的主要思想是当用户突破第一层安全保护进入数据库时,再启用第二层的安全保护机制,第二层的安全保护就是控制用户对数据库的操作权限。也就是说,你可以提升权限进入数据库,但是你要操作数据库还不行,你得突破第二层安全保护取得操作权限。因此,这种机制也就能够有效的防止用户的恶意篡改数据。
以实验室信息管理数据库系统为例,介绍触发器技术的应用。
1.仅供信息检索的数据库表 values;
--触发器定义的其他具体操作
End;
GO
GO
2.插入删除更新操作频繁的数据库表
如果要对数据库中插入、删除或更新记录,就必须先删除触发器,这给数据库管理员带来许多不便。因此,对于考试系统中用户管理子系统这一类型的修改操作比较频繁的数据库,我们不能像上面那样,不管什么用户的修改操作一律都屏蔽掉,而是应该根据用户权限有所不同。可以通过自定义用户权限表来判断用户操作的合法性,对于不合法的予以屏蔽。
自定义用户权限表包括四个字段:user_id、Insert_of、Delete_of、Update_of,它们的数据类型分别为:smallint、bit、bit、bit。其中bit类型中1表示用户有权限,0表示用户没有权限。
CREATE TABLE UserRight
在数据库系统运行过程中,可以使用全局函数CURRENT_USER来获取当前的用户名,赋值给@currentuser,之后再使用全局函数USER_ID获取当前用户的ID。
一个屏蔽非法操作的DELETE触发器设计如下:
CREATE TRIGGERtr_UserManage
ON UserManage
AFTER DELETE
AS
IF )
!=1)
ROLLBACK TRANSACTION
——其他的操作
GO
触发器在系统开发上有着很广泛的用途,本文介绍的只是它在加强数据库安全方面的一个小小应用。虽然触发器的用途很多,但是过多的使用触发器或者触发器写得不好,都将影响整个数据库的性能。因此,使用触发器的时候必须权衡各方面的因素,在适当的时候使用恰当的触发器。
参考文献:
刘卫宏:SQL Server 2000实用教程.科学出版社,2003,9
姚渝春等:数据库触发器及应用.重庆建筑大学学报,2003:128~131
徐晓阳:触发器在SQL Server数据库开发中的应用.电脑开发与应用,2005:48~49
相关:
新年快乐过年啦!可爱的小宝儿们来给大家拜年啦!新年快乐,红包拿来!宝宝秀照片征集秀长相、秀表情、秀服装……快来秀秀你家宝宝有多可爱吧!照片要求:照片清晰,大小要在1M以上。征集邮箱:mzjk@opus.net.cn,请写清你的..
从“工荒”看企业的根植性[摘 要]企业根植性理论提供了一个联系企业内部和外部的视角。劳动密集型企业对“无限供给”的劳动力市场的依赖表现为企业内部制度的某种缺陷,即中国劳动密集型企业不像科斯等所言,要与雇员签定较为长期稳定的劳..