SQL用户授权的误区

上一次的数据库实验中关于用户授权的部分,我用revoke回收了用户授权,然后使用

1
<span style="color: rgb(0,128,0)">exec sp_helprotect @username = 'user name'</span>

这个命令来查看其所拥有的权限(我使用的是SQL SERVER 2008),发现没有了对应的权限,然后就收工了,并没有用对应的权限语句去测试。

可是,这一次的实验,在实验室的时候听见后面的同学还是有对应权限的,然后测试了一下,果然,o(╯□╰)o!!

后来,查了一下,原来,revoke只是回收了用户的直接授权,但对于继承用户组或角色而来的权限,却是依然存在的;而大多数情况下,新建的用户都是继承自public角色,故对应的权限是依然存在的;只是,以上语句没有显示出来而已。

看来,还是直接测试一下比较保险实际。

相关说明资料请看这里:REVOKE,虽然是PostgreSQL的,但同样适用。