`
ihuashao
  • 浏览: 4723853 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

SQL Server 2008中的代码安全(二):DDL触发器与登录触发器

阅读更多

本文主要 涉及DDL触发器和登录触发器的应用实例。

MicrosoftSQL Server 提供两种主要机制来强制使用业务规则和数据完整性:约束和触发器。触发器为特殊类型的存储过程,可在执行语言事件时自动生效。SQL Server 包括三种常规类型的触发器:DML 触发器DDL 触发器登录触发器

1、当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器。DML 事件包括在指定表或视图中修改数据的 INSERT 语句、UPDATE 语句或 DELETE 语句。DML 触发器可以查询其他表,还可以包含复杂的 Transact-SQL 语句。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到错误(例如,磁盘空间不足),则整个事务即自动回滚。

关于DML触发器应用最为广泛。这里不再赘述。MSDN官方说明:http://msdn.microsoft.com/zh-cn/library/ms189799.aspx

2、当服务器或数据库中发生数据定义语言 (DDL) 事件时将调用 DDL 触发器。DDL 触发器是一种特殊的触发器,它在响应数据定义语言 (DDL) 语句时触发。它们可以用于在数据库中执行管理任务,例如,审核以及规范数据库操作。

下面我们用举例说明DDL触发器(http://technet.microsoft.com/zh-cn/library/ms189799%28SQL.90%29.aspx )的应用:

示例一:创建一个DDL触发器审核数据库级事件

执行结果:

邀月工作室

示例二:创建一个DDL触发器审核服务器级事件

效果:

邀月工作室

注意:要特别谨慎使用DDL触发器。如果设置不当,将会在数据库级甚至服务器级引发不可预知的后果。

3、登录触发器(http://msdn.microsoft.com/zh-cn/library/bb326598.aspx )将为响应 LOGON 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。

如果你有这样的需求:在某个特定的时间只允许某个账号登录服务器(如单位和家里使用不同的账号远程登录服务器),那么登录触发器是一个不错的选择。

示例三:创建一个登录触发器审核登录事件

结果:

邀月工作室

邀月工作室

当然,你也可以使用应用程序或类似于log4net的日志机制记录类似的登录事件,但SQL server 2008已经为我们做到了,你所做的仅仅是有勇气来试一试。

小结:作为对数据DDL操作和登录事件的审核和监控,SQL Server提供了比较完善的机制。这也是SQL server安全机制的一部分。下文将涉及SQL server数据库级的透明加密,敬请关注。

邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn



分享到:
评论

相关推荐

    浅析SQL Server2005中的DDL触发器技术.pdf

    为了满足这一需求,传统的通过第三方软件工具的方法虽然可行,但微软公司还是在SQL Server 2005版本中引入了DDL触发器技术,以进一步加强数据库的安全性。 DDL触发器的功能与DML触发器有相似之处,它们都是通过响应...

    第05节:SQLServer触发器Demo源代码.rar

    在本资源中,我们主要探讨的是SQL Server中的一个重要特性——触发器(Triggers),通过C#编程语言与SQL Server数据库进行交互。触发器是数据库系统中的一个关键元素,它允许我们在特定的数据操作(如INSERT、UPDATE...

    SQL SERVER 触发器视频讲解

    在SQL Server中,触发器是一种特殊的存储过程,它在数据库中的特定事件发生时自动执行,如数据插入、更新或删除操作。本视频讲解将深入探讨触发器的创建、编辑、修改及其功能,帮助用户更好地理解和应用这些技术。 ...

    SQLserver08触发器

    3. **Logon触发器**:在用户登录到SQL Server实例时触发,用于实现特定的登录验证或安全策略。 4. **Application Level Triggers(应用程序级触发器)**:非标准SQL Server特性,但可以通过扩展存储过程实现,用于...

    sql server触发器.rar

    SQL Server触发器是数据库管理系统中一种非常重要的特性,它允许开发者在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时执行自定义的SQL代码。这些操作被称为触发事件,而触发器则是对这些事件的响应。理解并...

    基于sql server 2005的触发器的创建及操作

    在SQL Server 2005中,触发器是一种特殊的存储过程,它在特定的数据操作语言(DML)事件,如INSERT、UPDATE或DELETE发生时自动执行。触发器可以帮助实现复杂的业务规则和数据完整性,通过扩展SQL语句的功能,提供了...

    SQL Server 2005编程入门经典-触发器和存储过程教程

    《SQL Server 2005编程入门经典-触发器和存储过程教程》是针对初学者的一本详尽指南,旨在帮助读者深入理解SQL Server 2005中的核心概念,特别是触发器和存储过程这两大数据处理的重要工具。下面将详细阐述这两个...

    sqlserver2000触发器

    在SQL Server 2000中,DML触发器主要针对INSERT、UPDATE和DELETE操作,而DDL触发器则响应对数据库结构的改变,如CREATE、ALTER和DROP等语句。 创建触发器时,需指定触发器的触发时机,如FOR INSERT、FOR UPDATE、...

    SqlServer2000触发器

    在SQL Server 2000中,触发器是一种特殊的存储过程,它在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器是数据库规则和约束的扩展,可以用于实现更复杂的业务逻辑,确保数据的完整性和一致性...

    sqlserver 触发器学习(实现自动编号)

    在SQL Server中,触发器是一种特殊的存储过程,它在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行,以实现复杂的数据完整性规则或业务逻辑。本篇将深入探讨触发器的基本概念、类型、分类及如何实现...

    sql server 2005学习笔记之触发器

    SQL Server 2005中的触发器是一种特殊类型的存储过程,它们在特定的T-SQL语句执行时自动触发,增强了数据库的逻辑控制能力。触发器主要分为两类:DML触发器和DDL触发器。 DML触发器是针对数据操纵语言(Data ...

    使用SQL Server触发器实现数据表的级联更新.pdf

    在SQL Server中,有两种触发器:DDL触发器和DML触发器。DDL触发器是被数据定义语句(DDL)所触发而被调用的触发器;DML触发器是被数据操作语句(DML)所触发而被调用的触发器。数据完整性规则主要由DML触发器创建。 ...

    SQL Server常用操作触发器、存储过程.rar

    在SQL Server中,触发器和存储过程是两个重要的数据库编程元素,它们对于数据管理和业务逻辑的实现至关重要。本文将深入探讨这两个概念以及如何在实际操作中使用它们。 首先,我们来了解一下触发器(Triggers)。...

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    不过,我可以根据标题和描述提供的信息,以及对SQL Server 2008和T-SQL语言基础知识的理解,为您构建一份关于Microsoft SQL Server 2008中T-SQL语言基础知识的知识点概要。 Microsoft SQL Server 2008是微软公司...

    SQL Server中多行数据更新的触发器应用研究.pdf

    在讨论SQL Server中多行数据更新的触发器应用研究时,首先需要了解触发器的定义以及其工作原理。触发器是数据库管理系统中的一种特殊存储过程,它能自动响应数据库中的数据操纵事件,比如插入、更新或删除操作。...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威指南。T-SQL是SQL Server的主要编程语言,用于数据管理和处理,是数据库开发、管理与优化的核心...

    SQL Server 2008的更改数据捕获:崭新的异步CDC解决方案能够提高性能.pdf

    有了 CDC,您就能够在运行在 SQL Server 2008 上的源 OLTP 系统中检测到更改过的数据,而不必实施一些昂贵的定制解决方案,例如时间戳、旗标、触发器等。 要开始学习 CDC,先要在特定数据库上启用 CDC。然后,我们...

    SQL server2008存储过程与触发器

    在SQL Server 2008中,存储过程和触发器是两种非常重要的数据库对象,它们在数据管理和业务逻辑实现上发挥着关键作用。下面将详细阐述这两个概念以及它们的应用。 **存储过程(Stored Procedures)** 1. **定义**:...

Global site tag (gtag.js) - Google Analytics