触发器和权限管理.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 触发器 权限 管理
- 资源描述:
-
HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,HandsOn,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,HandsOn,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,oracle,触发器和权限管理,触发器,触发器是当特定事件出现时自动执行的存储过程,特定事件可以是执行更新的DML语句和DDL语句,触发器不能被显式调用,触发器的功能:,自动生成数据,自定义复杂的安全权限,提供审计和日志记录,启用复杂的业务逻辑,创建触发器的语法,CREATE OR REPLACE TRIGGER trigger_name,AFTER|BEFORE|INSTEAD OF,INSERT OR UPDATE OF column_list,OR DELETE,ON table_or_view_name,REFERENCING OLD AS old/NEW AS new,FOR EACH ROW,WHEN(condition),pl/sql_block;,触发器的组成部分-1,触发器由三部分组成:,触发器语句(事件),定义激活触发器的 DML 事件和 DDL 事件,触发器限制,执行触发器的条件,该条件必须为真才能激活触发器,触发器操作(主体),包含一些 SQL 语句和代码,它们在发出了触发器语句且触发限制的值为真时运行,触发器的组成部分-2,SQL CREATE OR REPLACE TRIGGER trig_sal,AFTER UPDATE OF empsal ON salary_records,触发器语句,为 salary_records 表创建,trig-sal 触发器,在更新 emp_sal 列之后激活触发器,触发器限制,SQL,FOR EACH ROW,WHEN(NEW.empsalOLD.empsal),DECLARE,Sal_diff NUMBER;,只有在WHEN子句中的条件得到满足时,才激活trig_sal 触发器,触发器操作,SQL,BEGIN,sal_diff:=:NEW.empsal-:OLD.empsal;,DBMS_OUTPUT.PUT_LINE(工资差额:sal_diff);,END;,如果WHEN子句中的条件得到满足,将执行BEGIN 块中的代码,触发器的组成部分-3,Oracle,数据库,更新,表,保存更新,激活,触发器,AFTER 触发器的工作原理,BEFORE 触发器的工作原理,更新,表,激活,触发器,保存更新,Oracle,数据库,触发器类型-2,DDL,触发器,数据库级触发器,DML,触发器,语句级触发器,行级触发器,INSTEAD OF,触发器,在模式中执行 DDL 语句时执行,在发生打开、关闭、登录和退出数据库等系统事件时执行,在对表或视图执行DML语句时执行,无论受影响的行数是多少,都只执行一次,对DML语句修改的每个行执行一次,用于用户不能直接使用 DML 语句修改的视图,触发器类型-3,行级触发器,SQL CREATE TABLE TEST_TRG,(ID NUMBER,NAME VARCHAR2(20);,SQL CREATE SEQUENCE SEQ_TEST;,SQL CREATE OR REPLACE TRIGGER BI_TEST_TRG,BEFORE INSERT OR UPDATE OF ID,ON TEST_TRG,FOR EACH ROW,BEGIN,IF INSERTING THEN,SELECT SEQ_TEST.NEXTVAL INTO:NEW.ID FROM DUAL;,ELSE,RAISE_APPLICATION_ERROR(-20020,不允许更新ID值!);,END IF;,END;,/,触发器类型-4,SQL CREATE OR REPLACE TRIGGER trgdemo,AFTER INSERT OR UPDATE OR DELETE,ON order_master,BEGIN,IF UPDATING THEN,DBMS_OUTPUT.PUT_LINE(已更新 ORDER_MASTER 中的数据);,ELSIF DELETING THEN,DBMS_OUTPUT.PUT_LINE(已删除 ORDER_MASTER 中的数据);,ELSIF INSERTING THEN,DBMS_OUTPUT.PUT_LINE(已在 ORDER_MASTER 中插入数据);,END IF;,END;,/,语句级触发器,触发器类型-5,SQL CREATE OR REPLACE TRIGGER upd_ord_view,INSTEAD OF UPDATE ON ord_view,FOR EACH ROW,BEGIN,UPDATE order_master,SET vencode=:NEW.vencode,WHERE orderno=:NEW.orderno;,DBMS_OUTPUT.PUT_LINE(已激活触发器);,END;,/,INSTEAD OF 触发器,触发器类型-6,SQL CREATE TABLE dropped_obj(,obj_name VARCHAR2(30),obj_type VARCHAR2(20),drop_date DATE);,SQL CREATE OR REPLACE TRIGGER log_drop_obj,AFTER DROP ON SCHEMA,BEGIN,INSERT INTO dropped_obj,VALUES(ORA_DICT_OBJ_NAME,ORA_DICT_OBJ_TYPE,SYSDATE);,END;,/,模式触发器,启用和禁用触发器,删除触发器,启用、禁用和删除触发器,SQL ALTER TRIGGER aiu_itemfile DISABLE;,SQL ALTER TRIGGER aiu_itemfile ENABLE;,SQL DROP TRIGGER aiu_itemfile;,查看有关触发器的信息,SQL SELECT TRIGGER_NAME FROM USER_TRIGGERS,WHERE TABLE_NAME=EMP;,SQL SELECT TRIGGER_TYPE,TRIGGERING_EVENT,WHEN_CLAUSE,FROM USER_TRIGGERS,WHERE TRIGGER_NAME=BIU_EMP_DEPTNO;,USER_TRIGGERS 数据字典视图包含有关触发器的信息,权限,权限,是执行一种特殊类型的SQL语句或存取另一用户的对象的权力。有两类权限:系统权限和对象权限。,系统权限,:是执行一处特殊动作或者在对象类型上执行一种特殊动作的权利。,系统权限可授权给用户或角色,一般,系统权限只授予管理人员和应用开发人员,终端用户不需要这些相关功能。,对象权限,:在指定的表、视图、序列、过程、函数或包上执行特殊动作的权利。,角色,为相关权限的命名组,可授权给用户和角色。数据库角色包含下列功能:,一个角色可授予系统权限或对象权限。,一个角色可授权给其它角色,但不能循环授权。,任何角色可授权给任何数据库用户。,授权给用户的每一角色可以是可用的或者不可用的。,一个间接授权角色对用户可显式地使其可用或不可用。,在一个数据库中,每一个角色名必须唯一。角色名与用户不同,角色不包含在任何模式中,所以建立角色的用户被删除时不影响该角色。,建立角色的目的,为数据库应用管理权限和为用户组管理权限。相对应的角色称为应用角色和用户角色。,应用角色是授予的运行数据库应用所需的全部权限。,用户角色是为具有公开权限需求的一组数据库用户而建立的。用户权限管理是受应用角色或权限授权给用户角色所控制,然后将用户角色授权给相应的用户。,利用角色对权限管理的优点,ORACEL利用角色更容易地进行权限管理。有下列优点:,减少权限管理,不要显式地将同一权限组授权给几个用户,只需将这权限组授给角色,然后将角色授权给每一用户。,动态权限管理,如果一组权限需要改变,只需修改角色的权限,所有授给该角色的全部用户的安全域将自动地反映对角色所作的修改。,权限的选择可用性,授权给用户的角色可选择地使其可用或不可用。,应用可知性,当用户经用户名执行应用时,该数据库应用可查询字典,将自动地选择使角色可用或不可用。,应用安全性,角色使用可由口令保护,应用可提供正确的口令使用角色,,创建角色-1,使用CREATE ROLE语句可以创建一个新的角色,执行该语句的用户必须具有CREATE ROLE系统权限。,在角色刚刚创建时,它并不具有任何权限,这时的角色是没有用处的。因此,在创建角色之后,通常会立即为它授予权限。例如:利用下面的语句创建了一个名为OPT_ROLE的角色,并且为它授予了一些对象权限和系统权限:,CREATE ROLE OPT_ROLE;,GRANT SELECT ON sal_history TO OPT_ROLE;,GRANT INSERT,UPDATE ON mount_entry TO OPT_ROLE;,GRANT CREATE VIEW TO OPT_ROLE;,授予权限或角色-,授予系统权限,在GRANT关键字之后指定系统权限的名称,然后在TO关键字之后指定接受权限的用户名,即可将系统权限授予指定的用户。,例如:利用下面的语句可以相关权限授予用户chenjie:,GRANT CREATE USER,ALTER USER,DROP USER TO chenjie WITH ADMIN OPTION;,授予权限或角色-,授予对象权限,Oracle对象权限,指用户在指定的表上进行特殊操作的权利。,在GRANT关键字之后指定对象权限的名称,然后在ON关键字后指定对象名称,最后在TO关键字之后指定接受权限的用户名,即可将指定对象的对象权限授予指定的用户。,使用一条GRANT语句可以同时授予用户多个对象权限,各个权限名称之间用逗号分隔。,有三类对象权限可以授予表或视图中的字段,它们是分别是,INSERT,UPDATE和REFERENCES,对象,例如:利用下面的语句可以将CUSTOMER表的SELECT和INSERT,UPDATE对象权限授予用户chenqian:,GRANT SELECT,INSERT(CUSTOMER_ID,CUSTOMER_name),UPDATE(desc)ON CUSTOMER TO chenqian WITH GRANT OPTION;,在授予对象权限时,可以使用一次关键字ALL或ALL PRIVILEGES将某个对象的所有对象权限全部授予指定的用户。,授予权限或角色-,授予角色,在GRANT关键字之后指定角色的名称,然后在TO关键字之后指定用户名,即可将角色授予指定的用户。Oracle数据库系统预先定义了CONNECT、RESOURCE、DBA、EXP_FULL_DATABASE、IMP_FULL_DATABASE五个角色。CONNECT具有创建表、视图、序列等权限;RESOURCE具有创建过程、触发器、表、序列等权限、DBA具有全部系统权限;EXP_FULL_DATABASE、IMP_FULL_DATABASE具有卸出与装入数据库的权限。,通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。,回收权限或角色,使用REVOKE语句可以回收己经授予用户(或角色)的系统权限、对象权限与角色,执行回收权限操作的用户同时必须具有授予相同权限的能力。,例如:利用下面的语句可以回收已经授予用户chenqian的SELECT和UPDATE对象权限:,REVOKE SELECT,UPDATE ON CUSTOMER FROM chenqian;,利用下面的语句可以回收已经授予用户chenjie的CREATE ANY TABLE系统权限,:,REVOKE CREATE ANY TABLE FROM chenjie;,利用下面的语句可以回收己经授予用户chenjie的OPT_ROLE角色:,REVOKE OPT_ROLE FROM chenjie;,在回收对象权限时,可以使用关键字ALL或ALL PRIVILEGES将某个对象的所有对象权限全部回收。,例如:利用下面的语句可以回收己经授予用户chenqian的CUSTOMER表的所有对象权限:,REVOKE ALL ON CUSTOMER FROM chenjie;,激活和禁用角色,一个用户可以同时被授予多个角色,但是并不是所有的这些角色都同时起作用。角色可以处于两种状态:激活状态或禁用状态,禁用状态的角色所具有权限并不生效。,当用户连接到数据库中时,只有他的默认角色(Default Role)处于激活状态。在ALTER USER角色中使用DEFAULT ROLE子句可以改变用户的默认角色。,例如:如果要将用户所拥有的一个角色设置为默认角色,可以使用下面的语句:,ALTER USER chenjie DEFAULT ROLE connect,OPT_ROLE,在用户会话的过程中,还可以使用SET ROLE语句来激活或禁用他所拥有的角色。用户所同时激活的最大角色数目由初始化参数ENABLED ROLES决定(默认值为20)。如果角色在创建时使用了IDENTIFIED BY子句,则在使用SET ROLE语句激活角色时也需要在IDENTIFIED BY子句中提供口令。,如果要激活用户所拥有的所有角色,可以使用下面的语句:,SET ROLE ALL;,总结,子程序是命名的 PL/SQL 块,可带参数并可在需要时随时调用,有两种类型的PL/SQL子程序,即过程和函数,过程用户执行特定的任务,函数用于执行任务并返回值,触发器是当特定事件出现时自动执行的存储过程,触发器分为 DML 触发器、DDL 触发器和数据库级触发器三种类型,DML 触发器的三种类型包括行级触发器、语句级触发器和 INSTEAD OF 触发器,展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




触发器和权限管理.ppt



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/12705662.html