【问题标题】:how to restrict user access: only connect and exec function如何限制用户访问:仅连接和执行功能
【发布时间】:2011-04-08 15:21:16
【问题描述】:

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

实际情况如下:合作伙伴网站要求不通过xml webservice获取数据,但直接连接到mssql,我将为他们制作一个表函数或带参数的存储过程,但想隐藏所有正在发生的事情在内部服务器上。

谢谢。

【问题讨论】:

    标签: sql-server sql-server-2005


    【解决方案1】:

    您可以拒绝他们不需要的权限。例如,您可以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
    

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

    【讨论】:

    • 当我检查 sp_helprotect null,'public' - 我想关闭所有可用的操作时,设置限制是否正确?或者当我可以拒绝所有并允许我需要的确切内容时,还有其他简单的方法吗?
    猜你喜欢
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2013-08-09
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多