`

Oracle中的System Triggers(DDL触发器)

阅读更多
这算是比较偏门的知识了,但是有很多实际意义,可以帮助DBA完成一些日常的管理工作,比如可以禁用一些用户的功能(禁止用户修改或者删除某一个表,限制IP登陆等)。

概述

Oracle数据库中的System Trigger可以建立在Schema(在某些DDL语句执行的时候触发)或者Database(主要在系统层面触发,比如说登陆或者发生某些系统级别的报错)。

SCHEMA trigger:

创建于某一个schema上面,并且经由某些DDL语句触发执行。具体看下文链接更多的DDL event。

Database trigger:

数据库触发器基于数据库之上,由某些数据库级别的事件触发。具体看下文链接更多的Database event。

触发模式

与DML触发器一样,有两种触发模式

before:在语句执行前触发

after:在语句执行后触发

这个就不用细说了。

简单示例

限制IP登陆

组织IP为192.168.100.71的机器发出的连接请求。

create or replace trigger limit_ip

AFTERLOGON on database

begin

ifSYS_CONTEXT('USERENV', 'ip_address') = '192.168.100.71' then

raise_application_error(-20999, 'Cann''t logon this database.');

end if;

end;

C:\Users\fengjun>sqlplusscott/tiger@192.168.100.221:1521/repo

SQL*Plus: Release 11.2.0.3.0 Production on 星期二 2月 25 09:49:182014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

ERROR:

ORA-00604: 递归 SQL 级别 1 出现错误

ORA-20999: Cann't logon this database.

ORA-06512: 在 line 2

注:如果用户拥有DBA权限,则不受此触发器影响。
分享到:
评论

相关推荐

    调试oracle触发器方法

    在Oracle数据库中,触发器(Triggers)是一种存储过程,它们自动执行,当特定的数据库事件发生时,如INSERT、UPDATE或DELETE操作。调试Oracle触发器是开发和维护数据库应用程序时的重要步骤,可以帮助我们找出潜在的...

    oracle触发器的创建与使用

    在Oracle中,查看、编辑、重命名和删除触发器同样使用类似的操作,如`SELECT * FROM USER_TRIGGERS`来查看触发器,`ALTER TRIGGER`用于编辑,`RENAME TRIGGER`用于重命名,`DROP TRIGGER`用于删除。 通过学习和掌握...

    第9章 触发器.ppt

    通过查询数据字典视图,如ALL_TRIGGERS或DBA_TRIGGERS,可以查看数据库中的触发器信息,包括触发器名称、所属表、触发类型、触发事件以及触发器的定义等。 综上所述,触发器在Oracle数据库管理中扮演着重要角色,...

    ORACLE中触发器和存储过程介绍相关代码

    本资源包含与"ORACLE中触发器和存储过程介绍"相关的代码示例,帮助用户深入理解和实践这两种技术。 首先,我们来详细探讨触发器。触发器是一种数据库对象,它会在特定的数据库事件(如INSERT、UPDATE、DELETE)发生...

    oracle练习题关于触发器的作业

    本篇文章将深入探讨Oracle中的触发器及其在实际问题解决中的应用。 首先,触发器是一种数据库对象,它在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以看作是存储过程的一种特殊形式,当...

    Oracle触发器与存储过程高级编程-第3版itpub.rar

    《Oracle触发器与存储过程高级编程》第3版是一本深入探讨Oracle数据库中触发器和存储过程技术的专业书籍。在Oracle数据库系统中,触发器和存储过程是数据库管理员和开发人员进行复杂业务逻辑处理和数据管理的重要...

    oracle触发器

    在Oracle数据库管理中,触发器是一种非常强大的工具,它允许你在特定的数据库事件(如数据插入、更新或删除)发生时自动执行预定义的SQL语句或PL/SQL代码块。这使得数据库能够在无需外部程序干预的情况下,对数据...

    oracle触发器使用,很详细

    触发器使用教程和命名规范 1 1,触发器简介 1 2,触发器示例 2 3,触发器语法和功能 3 4,例一:行级触发器之一 4 5,例二:行级触发器之二 4 6,例三:INSTEAD OF触发器 6 7,例四:语句级触发器之一 8 8,...

    oracle 触发器 必懂

    在Oracle数据库中,触发器是一种特殊类型的存储过程,它能够在特定的数据库事件发生时自动执行。触发器主要根据触发事件的不同分为三类:DML事件触发器、DDL事件触发器以及数据库事件触发器。 1. **DML事件触发器**...

    oracle触发器功能介绍

    理解并正确使用Oracle触发器,可以帮助我们更好地管理和保护数据库中的数据,同时要注意合理使用,以避免潜在的问题。通过学习和实践,我们可以将触发器作为工具箱中的一项有力武器,为数据库的健壮性和稳定性保驾...

    Oracle触发器里调用Java程序

    在Oracle数据库中,触发器(Triggers)是一种存储过程,它可以自动执行当特定的数据库事件发生时,如INSERT、UPDATE或DELETE操作。这种机制允许开发者在数据库层面上实现业务逻辑,增强数据完整性和一致性。本篇文章...

    把ORACLE触发器说透

    Oracle触发器是数据库管理系统中一种强大的工具,它允许开发人员在特定事件发生时自动执行预定义的PL/SQL代码。在Oracle系统中,触发器与存储过程和函数相似,都包含声明、执行和异常处理的PL/SQL块。然而,触发器的...

    Drop goldengate用户时报ORA-00604 ORA-20782 ORA-06512问题解决

    - **DDL触发器状态**:通过查询`dba_triggers`视图可以发现,存在名为`GGS_DDL_TRIGGER_BEFORE`的DDL触发器,并且该触发器处于启用状态(`ENABLED`)。这意味着DDL触发器会在DDL语句执行前后触发,从而导致在尝试删除...

    Oracle触发器.pdf

    在Oracle数据库中,触发器(Trigger)是存储在数据库中的一个特殊类型的程序,它会在满足特定条件时自动执行。这些条件可以是DML操作(如INSERT、UPDATE、DELETE)或DDL操作(如CREATE、ALTER、DROP)。触发器通常...

    Oracle触发器的概念和类型

    Oracle 触发器是一种特殊的存储过程,它在插入、删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有以下几种作用: 1. 安全性。可以基于数据库的值使...

    ORACLE PL/SQL 存储过程 触发器

    在Oracle数据库中,存储过程和触发器是两个非常重要的概念,它们在数据库管理、数据处理以及业务逻辑实现中起着关键作用。 **存储过程(Stored Procedures)** 存储过程是一组预先编译好的SQL语句和PL/SQL代码,...

    oracle触发器与存储过程高级编程

    在Oracle中,触发器和存储过程是两个关键的数据库编程元素,它们在数据管理和业务流程自动化中发挥着重要作用。本节将深入探讨“Oracle触发器与存储过程高级编程”的相关知识。 **触发器(Triggers)** 触发器是一...

    详解Oracle序列和触发器的使用

    在Oracle中,序列(Sequences)和触发器(Triggers)是两个非常重要的概念,它们在数据库设计和开发中扮演着关键角色。本文将深入探讨这两者,并展示如何在实践中使用它们。 **一、Oracle序列** 序列是一种特殊...

    oracle-触发器练习.pdf

    触发器(Trigger)是 Oracle 数据库中的一种机制,用于自动执行某些操作以维护数据的一致性和完整性。触发器可以在特定的事件发生时自动执行,例如插入、更新或删除数据。 二、触发器的应用场景 本文档中的练习...

    oracle上写触发器

    在Oracle数据库中,触发器(Triggers)是一种存储过程,它会在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器的主要作用是扩展SQL的功能,实现数据的完整性约束,或者在数据更改时执行一些...

Global site tag (gtag.js) - Google Analytics