SQL用户授权的误区

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

1
exec sp_helprotect @username = 'user name'

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

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

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

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

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

SQL Server身份验证模式及用户权限

今天做数据库实验,主要就是用户授权及回收授权的问题。

很快就遇到问题了,因为对user1授权后允许其对user2授权。可是我就是登录不了user1。后来使用了经常被河蟹的google来google了好一会,终于找到了解决办法。顺便把我新建用户所遇到的曲折也说一下,新手如我遇到这种情况应该也是可以原谅的。

因为以前没摆弄过SQL Server,而老师给出实验要求中的提示是针对2000的,而我用的是沿自2005的SQL Server 2008,所以情况很不一样。

如果在这里遇到问题,可以看下这个帖子;而以下的图则是我的一些体会,这里需要注意“用户名”和“登录名”之间的映射关系。

首先,需要在服务器安全性中的登录名中右键来选择新建登录名:

新建登录名

继续阅读“SQL Server身份验证模式及用户权限”