MSSQL 阻止指定用户删除数据库表(drop table)的方法分享


阻止一个用户删除表的方法,我们可以通过账户权限进行操作,也可以采用数据库触发器 捕捉 DML语言事件,
对删除数据库表事件进行拦截,下文将讲述具体的拦截方法


create table A(keyId int,info varchar(30))
go

CREATE TRIGGER tr_dataBase_dropTable  
ON DATABASE  
FOR DROP_TABLE, ALTER_TABLE
AS  
IF system_user='sa'  
  BEGIN
  PRINT '当前账号无权删除表'  
  ROLLBACK
END 
go

ENABLE TRIGGER tr_dataBase_dropTable ON DATABASE
go

truncate table A
drop table A 
go

drop trigger tr_dataBase_dropTable on database 
go