日期:2014-05-18  浏览次数:20575 次

如何限制用户的权限
我想让用户拥有最低的权限,只能在程序允许的范围内存取表中的数据,因此 SELECT, INSERT 等权限都没有给用户,但给了 EXEC 权限。

SQL code
GRANT EXECUTE TO [Username];


然后我编写了许多代替 SELECT, INSERT 的存储过程让用户调用,在存储过程中我就可以检查数据的合法性,并只让用户看到有限的表内信息。Grant execute 时没有指定具体存储过程的原因是存储过程太多了,而且时不时就要增加。

请问这种限制方法是否真的能见效?有没有其他更好的办法?

------解决方案--------------------
楼主,这已经是最好的方法了,而且是官方推荐的方法。

不过,还可以完善一下:1.指定存储过程名称 2.新建一个DDL触发器,自动为新增加的SP授权.

------解决方案--------------------
做个字典慢慢查吧,都这样