【问题标题】:What is a minimum SQL Server role allowing trigger creation/dropping?允许创建/删除触发器的最低 SQL Server 角色是什么?
【发布时间】:2009-08-03 08:53:18
【问题描述】:

先决条件:

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

问题:

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

问题:

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

【问题讨论】:

  • 请不要使用mssql标签;请改用sql-server。与标题或问题或答案正文中的“MSSQL”相同,因为该产品称为“SQL Server”。如果名称正确,则更容易在搜索中找到。

标签: sql-server triggers security-roles


【解决方案1】:

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

SQL 操作所需的权限通常记录在 SQL 参考中。例如。对于 SQL 2008 上的 CREATE TRIGGER,请参阅 here(向下滚动到“权限”),在这种情况下:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多