先决条件:

有用 Delphi32 编写的客户端/服务器应用程序。RDBMS 是 SQL Server 2005。某些应用程序功能需要在目标数据库中创建/删除触发器(从使用临时 DDL 语句的应用程序)。

问题:

如果用户属于 sysadmin 角色,则创建/删除触发器没有问题。然而,对于应用程序用户来说,这被认为是一个过于宽松的角色。

问题:

  • 最低标准是多少(即最严格的)可用于创建/删除触发器的 SQL Server 角色?
  • 创建自定义角色(而不是使用标准角色)是否会构成解决此问题的更细粒度的方法?
有帮助吗?

解决方案

根据授予的范围(数据库中的任何触发器、模式或特定表中的任何触发器),有多种选项。

通常,SQL 操作所需的权限记录在 SQL 参考中。例如。为了 CREATE TRIGGER 在 SQL 2008 上参见 这里 (向下滚动到“权限”),在本例中:

DML 触发器需要对要创建触发器的表或视图具有 ALTER 权限

您可以创建一个仅授予您想要的权限的角色,然后将用户/组添加到该角色,因此您创建的最小角色是仅具有您想要允许其成员的特定访问权限的角色。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top