如何限制用户访问:只有连接和执行功能

时间:2011-04-08 06:17:01

标签: sql-server sql-server-2005

请建议如何限制用户访问mssql:只连接并执行特定的函数列表或存储过程。问题是默认的“公共”角色提供了比需要更多的权限 - 列出数据库,获取用户列表等。 如何尽可能多地关闭(拒绝所有),之后只打开允许的内容?

真实情况如下:合作伙伴网站要求不通过xml webservice获取数据但是直接连接到mssql并且我将为它们创建一个表函数或者使用参数创建存储过程,但是想要隐藏所有内容在服务器内部。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以拒绝他们不需要的权限。例如,您可以DENY VIEW ANY DATABASE,以便他们无法在服务器上看到其他数据库。 DENY工具提供了许多选项(对于那些在服务器级别应用的页面,以及适用于database level的页面,它们有很多选项。)


只需:

DENY VIEW ANY DATABASE to <user> --Run in master

DENY VIEW DEFINTION to <user> -- run in the database you've given them connect permission

应该足以让他们看不到任何东西,或从任何表中选择。然后,您只需要明确授予他们您希望他们拥有的权限。