设想以下情况:数据库管理员创建新用户。我们叫他user1。管理员使用grant选项向user1授予权限。
GRANT A TO user1
WITH GRANT OPTION
现在user1将上述权限授予user2:
GRANT A TO user2
WITH GRANT OPTION
假设admin从user1中撤销了:
REVOKE A FROM user1
授予user2权限后会发生什么情况?他们还在工作吗?它们被删除了吗?行为是否取决于平台,因此在oracle、ms sql、mysql等平台上可能有所不同?我知道您可以通过在mssql中使用cascade关键字来指定这样的行为,但是我听说,当父级被撤销时,其他平台会在默认情况下删除子级授予。
1条答案
按热度按时间dfuffjeb1#
在sql server中,从拥有该权限的主体撤消权限
with grant option
而谁给了其他校长这样的许可,谁就会失败。要在SQLServer上测试这些东西,请创建没有登录和使用的用户
execute as
模拟它们并测试其行为和有效权限。