【问题标题】:GRANT EXECUTE for "sp_delete_database_backuphistory" for group of users为用户组授予“sp_delete_database_backuphistory”执行权限
【发布时间】:2017-10-07 17:12:44
【问题描述】:

我有一个具有服务器角色“dbcreator”的组登录。此登录的用户已被授予在“sp_delete_database_backuphistory”上执行的权限,以便他们可以删除彼此的数据库。现在的问题是这些用户有可能删除其他登录创建的数据库。有解决方案吗?是否可以设置权限,以便这些用户ONLY可以删除使用此登录名创建的数据库?

【问题讨论】:

    标签: sql sql-server stored-procedures roles


    【解决方案1】:

    您不能直接这样做,但是您可以将系统 sp_delete_database_backuphistory 包装到您自己的 usp_delete_database_backuphistory 可以调用 sp_delete_database_backuphistory 或根据您要执行的检查结果立即返回。 我不能在评论中问你说“其他用户创建的数据库”是什么意思,首先只有登录名(不是用户)可以创建一个数据库,但是这个信息(数据库创建者)你不能从任何系统元数据中提取,所有你can get 是当前数据库所有者,这可能与数据库创建者不同。 我的意思是,当您创建数据库时,您可以显式分配其他登录名来拥有该数据库,或者您可以稍后出于某些目的这样做

    【讨论】:

    • 嗨 sepupic :)。我已经修改了原文,这样我就不会混淆我在这里试图实现的目标。我会尝试研究您的建议,看看这是否是我正在寻找的解决方案。谢谢
    • 嗨彼得,我重复这个问题:数据库不知道是谁创建了它,这些信息不会存储在数据库元数据中;您唯一可以检查的是数据库的所有者,所有者可以设置为任何登录名。我有一台服务器,其中所有数据库的所有者都是 sa,但 sa 帐户完全被禁用,您的代码应该在这种情况下做什么一个案例?没有人可以删除备份历史记录?
    猜你喜欢
    • 2011-09-25
    • 2023-04-02
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多