我想知道SQL语法以拒绝禁用用户组的触发器。有一个关键的触发器正在被一些人禁用和重新启用。我想从一开始就防止它被残废。因此,我尝试了以下语法。
USE [MyDBName]
GO
DENY ALTER ON OBJECT::[dbo].[TRIG_SomeName_DELETE] TO [UserGroup];但是我得到了一个错误,比如‘无法找到对象'TRIG_SomeName_DELETE',因为它不存在或者您没有权限。我尝试过从具有提升权限的sql帐户执行上述语句。但我总是犯同样的错误。我认为我可能没有使用正确的语法来拒绝禁用触发器权限。我非常感谢在这方面的任何帮助。
发布于 2020-08-18 18:36:14
您需要省略[dbo].,因为数据库级别的触发器不属于架构。此外,数据库级触发器没有ALTER权限.您必须阻止它们编辑任何数据库级别的触发器(使用适当命名的ALTER ANY DATABASE DDL TRIGGER权限):
USE [MyDBName];
GO
DENY ALTER ANY DATABASE DDL TRIGGER TO [UserGroup];这将防止UserGroup中的任何人创建、删除、更改、启用或禁用任何数据库级别的DDL触发器。
https://stackoverflow.com/questions/63474181
复制相似问题