当有人在服务器级别进行更改(例如附加或创建数据库)时,是否可以编写触发器?我有一个开发服务器,任何人都可以在其中添加产品数据库的副本以进行测试,但没有清理程序。我想在添加数据库时添加以下扩展属性。
EXEC sys.sp_addextendedproperty
@name = N'Owner',
@value = N'Username';
EXEC sys.sp_addextendedproperty
@name = N'StartDate',
@value = N'9/1/2011';
您可以为此使用DDL 触发器。似乎没有为附加引发DDL 事件,但肯定有 CREATE DATABASE。您可以通过拒绝对 sp_attachdb 的权限并强制每个人改为使用 CREATE DATABASE FOR ATTACH 来解决此问题。
下面的示例感觉有点像 hack,因此希望具有更多 DDL 触发器经验的人会提出一种更简洁的方法来执行此操作。