【发布时间】:2013-01-14 07:41:52
【问题描述】:
据我了解,在 SQL Server 中,DENY 会阻止权限并胜过任何现有的 GRANT。我只是在想是否有办法拒绝“with grant option”,意思是防止任何“with grant option”显式地给予委托人,而不是像here中描述的那样在GRANT语法中省略它。类似于伪代码中的“GRANT permission DENY GRANT OPTION”。
我一直在寻找这样的功能,因为我不希望具有相同 GRANT OPTION 的其他主体稍后为主体提供 GRANT OPTION。我正在从安全环境中看待这个问题。
有没有办法做到这一点?
【问题讨论】:
-
嗯?默认情况下未给出授权选项。您必须选择加入,才能让人们选择向他人授予权限。为什么这种默认行为不是您想要的?
-
谢谢,我知道默认值。我只是在考虑这样一种情况,其中另一个委托人随后将授予具有授予选项的权限授予我已授予相同权限但没有授予选项的同一委托人。
-
不,没有这样的选择。将权限决定委派给其他用户后,您无法阻止他们进一步将该权限传递给谁,以及他们是否决定进一步委派该权限。
-
开箱即用,也许您可以有一个存储过程,将这些用户授予的权限回滚给另一个用户。您可以通过这些更改触发存储过程或 shell 脚本来完成此操作。如果用户更改超过 3 次,您可能需要做的唯一附加操作是锁定用户帐户。
-
@jjamesjohnson - 好一个。请将此作为答案,以便我接受。我认为这是可行的,因为我目前从所有服务器级别和数据库级别 DDL 触发器中捕获 TSQL 命令。非常感谢。