数据库触发器,禁止DDL操作】的更多相关文章

CREATE TRIGGER [Object_Change_Trigger_DDL] ON DATABASE FOR ALTER_TABLE,DROP_TABLE,CREATE_TABLE,CREATE_INDEX,ALTER_INDEX, DROP_INDEX AS DECLARE @EventData AS XML; SELECT @EventData = EVENTDATA(); IF @EventData.value('(/EVENT_INSTANCE/LoginName)[1]','v…
在我们的工作中可能会遇到这样一种情形.由于数据库中某些对象被altered/created/deleted,造成我们的应用程序crash. 当我们把问题解决之后,老板可能会问发生了什么?为什么会这样?是谁干的? 在SQL Server 2005中提供了DDL trigger,它能回答所用这些问题,但我们没有在事前实现这一工作. 在这种情况下,有些人可能会对老板说:“我不知道,但我能去查.”之后就疯狂地寻找第三方的工具来读transaction log(事物日志).他们可能不知道SQL Serve…
背景 为了监控好生产环境下各个数据库服务器上DDL操作日志,便于运维工程师管控好风险,我们有必要关注当前实例下的所有的DDL操作以及对应的IP和hostname. 测试环境 Microsoft SQL Server 2012 - 11.0.2218.0 (X64)  Jun 12 2012 13:05:25  Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.2 <X64> (Build…
一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作.(第1题中,user是系统函数,返回当前用户.字符串中使用两个单引号表示一个单引号.) 要求:分别以system用户和scott用户对emp 表执行DML操作,试验触发器的运行效果. (1)在scott用户下创建触发器 语句: create or replace t…
关键词:数据库触发器/服务器触发器  ,数据库级别DDL操作监控审计,禁止修改登录名密码 [1]数据库级别DDL操作监控审计 转自2012示例库,只能数据库级别,不能实例级别 use databasego SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create table databaseLog( [PostTime] datetime, [DatabaseUser] varchar(500), [Event] varchar(500),…
DDL 操作数据库:常用的操作 CRUD 一.C(create)创建 1.创建数据库 create database 数据库名称; 2.创建数据库,判断是否存在,再创建(如果存在,就不再创建) create database if not exists 数据库名称; 3.创建数据库,并指定字符集 create database 数据库名称 character set 字符集名; Demo : 创建 DB1 数据库,判断是否存在,并制定字符集为 utf8: create database if n…
SQL> --当我们对empnew执行删除操作之后,它就会出现一个提示信息,提示:这是删除操作!SQL> CREATE TRIGGER first_trigger 2 AFTER DELETE 3 ON empnew 4 BEGIN 5 DBMS_OUTPUT.put_line('这是删除的操作!'); 6 END; 7 /Trigger created SQL> SET SERVEROUTPUT ONSQL> DELETE FROM empnew WHERE empno = 77…
总体解释: DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): DDL比DML要多,主要的命令有CREATE.ALTER.DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Data Control Langu…
MySQL 5.5 DDL 在MySQL 5.5版本前,所有DDL操作都使用Copy Table的方式完成,操作过程中原表数据库不允许写入,只能读取,在MySQL 5.5版本中引入FIC(Fast index creation)特性. FCI 操作流程: (1)对表加共享S锁,允许其他会话读操作,但禁止写操作, (2)根据当前表数据创建索引, (3)新索引创建完成,解除S锁,允许读写. FCI 优点: (1)创建索引不需要拷贝整表数据,创建速度快, (2)创建索引过程中,可以快速中止. FCI限…
创建一个日志表,记录dept表的DML操作 create table dept_log(logid number,type varchar2(50),logdate date,deptno number,dname varchar2(50),loc varchar2(50)); create sequence dept_log_seq; create or replace trigger dept_update_trigger10 before insert or update or delet…