Server-2008中的代码安全之二-DDL触发器与登录触发器-浅析SQL (server是什么意思)

教程大全 2025-07-12 23:55:53 浏览

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

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

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

关于DML触发器应用最为广泛。这里不再赘述。MSDN官方说明:

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

下面我们用举例说明DDL触发器()的应用:

示例一: 创建一个DDL触发器审核事件

执行结果:

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

效果:

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

3、登录触发器()将为响应 LOGON 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。

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

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

结果:

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

小结:作为对数据DDL操作和登录事件的审核和监控,SQL Server提供了比较完善的事件处理机制。这也是SQL server安全机制的一部分。

【编辑推荐】


2008中的代码安全之二

sqlserver 触发器

CREATE TRIGGER trigger_name ON work1after UPDATEasDECLARE @var1 nvarchar(50)DECLARE @var2 nvarchar(50)DECLARE @var3 nvarchar(50)select @var1=barcode from deletedselect @var2=flowname from deletedselect @var3=nextwork from flow where name = (select flowname from deleted)DECLARE @sql nvarchar(500)set @sql=insert +@var3+ values(+@var1+,+@var2+)exec @sql

DDL触发器可以分为哪四种?

从SQL Server 2005 DBMS的视角看,DDL分为实例和数据库两种: 实例级别的DDL触发器,其影响范围就是整个SQL Server 2005的服务器,例如,数据库的建立、修改与删除,登录账户的建立、修改与删除,以及端点的建立与删除。 数据库级别的DDL触发器,主要是对数据库级别安全对象的DDL动作进行监控。

Django里面怎么实现数据库视图啊 就是虚拟表

正经回答:先在数据库中建立好视图,然后django中建立对应的model。 表所对应的类下面再建立一个Meta类,大致如下classViewModel():这个model类对应你所建立好的视图classMeta(object):同理,该方法可用于使用mysql中任何已有的表,不仅是视图db_table=your_view#显式指定表名,也就是你建立的视图的名字managed=false#默认是ture,设成falsedjango将不会执行建表和删表操作#建立字段间的映射#需要注意的是,必须设一个字段为主键#不然django会自动创建一个id字段为主键,引发错误网络知道越来越辣鸡了,全是答非所问的。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐