【问题标题】:SQL Server 2005 - Deny View of "Security", "Server Objects", "Replication" and "Management"?SQL Server 2005 - 拒绝查看“安全”、“服务器对象”、“复制”和“管理”?
【发布时间】:2009-09-04 19:52:16
【问题描述】:

我可以通过执行以下操作来拒绝特定用户 DB 查看:

DENY VIEW ANY DATABASE TO Myuser

但是,有没有办法在通过 SSMS 登录时也拒绝远程用户查看“安全”、“服务器对象”、“复制”和“管理”?

谢谢。

【问题讨论】:

    标签: sql-server-2005 permissions remote-access


    【解决方案1】:

    这些 SSMS 类别是各种服务器端功能的集合。以“安全”选项卡为例,它显示“登录”、“服务器角色”和“凭据”。考虑“登录”节点:

    • 显示现有登录,即sys.server_principals 的视图,并且此目录视图中对象的可见性仅限于当前用户拥有所有权或拥有view definition 的实体(登录)许可结束。
    • 允许添加新登录名,即CREATE LOGIN,而这又需要ALTER ANY LOGINALTER LOGIN 权限。
    • 允许删除登录,即DROP LOGIN,这需要ALTER ANY LOGIN

    现在您理论上可以拒绝登录时查看定义,拒绝 ALTER ANY LOGIN 并拒绝用户的 ALTER LOGIN,但您将无法拒绝 所有权 的登录名,所以用户仍然会在那里看到一些东西(它自己的登录名)。所以这是一场失败的战斗。您可以对 SSMS 中您想要隐藏的任何其他面板应用类似的推理,您将获得类似的结果。

    也就是说,你是从错误的角度来处理这个问题的。安全性从不依赖于 DENY,总是依赖于 GRANT。您的用户不应该拥有任何不必要的权利。你不应该明确否认任何事情,裸露一些特殊情况。

    【讨论】:

    • 谢谢莱姆斯。我知道此用户的有效权限将阻止他们访问此资源,但通常我只是不喜欢他们看到系统中他们无权访问的所有内容的想法......我会采纳你的建议,就这样吧:)
    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2018-01-07
    • 2014-06-15
    • 1970-01-01
    相关资源
    最近更新 更多