mssql sqlserver 使用数据库触发器禁止对表结构操作


摘要:
下文讲述使用数据库触发器禁止用户对数据表结构进行相关操作,如下所示:
实验环境:sql server 2008 R2


在MSSQL 数据库中,数据库触发器是一种特殊的触发器,它可以对表、视图、存储过程的修改,重命名、新增执行相应的事件,自动执行相应操作。
我们常利用此功能限制用户对数据库对象的变更操作。
例:
采用数据库触发器限制对表结构的相关操作

USE [master]
GO

CREATE TRIGGER [tr_onServer_protectTable]  ---触发器名称
ON ALL SERVER
FOR DROP_TABLE,DROP_PROCEDURE,DROP_VIEW,DROP_FUNCTION, 
CREATE_TABLE,CREATE_PROCEDURE,CREATE_VIEW,CREATE_FUNCTION,
ALTER_PROCEDURE,ALTER_VIEW,ALTER_TABLE,ALTER_FUNCTION,RENAME    
----触发器所对应的事件

AS

begin  

   print '禁止进行此操作'

  rollback tran ;

end 
GO


ENABLE TRIGGER [tr_onServer_protectTable] ON ALL SERVER   --开启触发器
GO