触发器与授权-数据库与智能网络.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
触发器与授权-数据库与智能网络.ppt

12.* 数据库与智能网络研究室 第四章:触发器与授权 触发器和授权 触发器 授权 触发器 触发器的概念 触发器是一条语句,当对数据库作修改时,它自动被系统执行。特殊类型的存储过程。触发器不同于存储过程。触发器主要是通过事件触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。 触发器是与表紧密联系在一起的,可以看作是基本表定义的一部分。触发器是在特定表上进行定义的,该表也称为触发器表。当有针对触发器表的操作时,例如,在表中插入(Insert)、删除(Delete)、修改(Update)数据时,那么触发器就自动触发执行。 触发器 触发器的类型 触发器的类型有三种: (1)DML触发器。Oracle可以在DML(数据操纵语句)语句进行触发,可以在DML操作前或操作后进行触发,并且可以在每个行或该语句操作上进行触发。 (2)替代触发器。由于在Oracle中不能直接对有两个以上的表建立的视图进行操作,所以给出了替代触发器。它是Oracle专门为进行视图操作的一种处理方法。 (3)系统触发器。在Oracle8i时,提供了第三种类型的触发器叫系统触发器。可以在Oracle数据库系统的时间中进行触发,如Oracle数据库的关闭或打开等。 触发器 触发器不带参数,不被用户和程序调用,只能由用户对DB中的表进行操作时触发(即:由操作激发)。 一个表中最多有三个触发器,即:插入、修改和删除。 一旦某操作激活了某个触发器,系统就会将该操作与该操作激活的触发器作为一个事务提交或回退。 一个触发器同时含有两张表,即:inserted和deleted。当操作为插入时,则新数据也会写入inserted表中;当操作为删除时,删除数据会保存在deleted表中;而当操作为修改时,会同时用到这两张表,先删后写。 触发器 插入表的功能 对一个定义了插入类型触发器的表来讲,一旦对该表执行了插入操作,那么对向该表插入的所有行来说都有一个相应的副本存放到插入表中,即插入表就是用来存储向原表插入的内容。 删除表的功能 对一个定义了删除类型触发器的表来讲,一旦对该表执行了删除操作,则将所有的删除行存放至删除表中。 触发器 触发器的创建 CREATE TRIGGER 触发器名 ON 表名 FOR {INSERT|UPDATE|DELETE}[, {INSERT|UPDATE|DELETE}] … AS SQL语句 RETURN 触发器的删除 DROP TRIGGER 触发器名 触发器 例:假设有部门编制表departments和员工信息表employees,其中有一个列employee-count(部门员工数统计)数据是该部门下的职员人数,当在employees中增加职员记录时,由触发器完成对该列的更新。 CREATE OR REPLACE TRIGGER updatemp-tgr AFTER INSERT ON employees FOR EACH ROW BEGIN update departments set employee-count= employee_count+1; where departments .DEPARTMENT-ID = employees.DEPARTMENT-ID; END 触发器 触发器还有许多其他功能: (1)强化约束(Enforce Restriction)。 (2)跟踪变化(Auditing Changes)。 (3)级联操作(Cascaded Operation)。 (4)存储过程的调用(Stored Procedure Invocation)。 注意: 不能对视图和临时表创建触发器; 如果建立触发器的表被删除,那么其上的触发器将被自动删除。 授权 赋予用户在访问数据库上的授权 Read授权 Insert授权 Update授权 Delete授权 修改数据库模式的授权 Index授权 Resource授权 Alternation授权 Drop授权 授权 授权(Authorization)类型 角色权限 ── 由DBA授予; DB对象权限 ── 由DBA或对象创建者授予。 角色授/撤权 授权:GRANT 角色类型 [{, 角色类型}] TO 用户 [ IDENTIFIED BY 口令] 角色类型::=Connect|Resource|DBA 撤权: REVOKE 角色类型 [{, 角色类型}

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档