【问题标题】:Sql 2008 "Public Not Granted Server Permission" policySql 2008“未授予公共服务器权限”策略
【发布时间】:2009-04-01 20:38:19
【问题描述】:

我最近开始研究 SQL Server 2008 中的新策略管理,当我检查是否符合“未授予公共服务器权限”策略时,我的服务器未通过检查。原因是,我很确定这是默认设置,public 具有 TCP Endpoint 权限,以便用户可以连接到服务器。如果我要删除它,我将不得不单独为用户分配连接权。

这对我来说似乎很愚蠢。我不明白为什么微软会建议改变这个。我没有来宾帐户,所以只有指定的用户才能访问服务器。服务器在防火墙后面,甚至公司内只有一个子网可以访问它。有人对此有任何见解吗?

【问题讨论】:

    标签: sql-server policy


    【解决方案1】:

    安全最佳实践从锁定一切开始,然后仅在必要时向真正需要使用它的人开放部分。

    通过允许“公众”访问甚至连接,不管他们无权做任何事情的事实,打开门只是一个裂缝。有时,这足以利用缓冲区溢出或其他类型的攻击。

    更新

    登录和用户是两个不同的东西。登录是服务器级别的,用户是特定于数据库的。每个用户都应该有一个相应的登录名;但不是每个登录都会有一个数据库用户帐户。

    假设您正在使用 Active Directory 集成安全性;并且您已经分配了一个特定的 AD 组来访问服务器。现在,只有组内的一些人可能实际上可以访问某些数据库。这些是您希望允许访问连接的人。而该组的其他成员没有常规的数据库用户帐户。

    根据定义,这是一个问题,因为一些组成员可以连接并列出服务器上的数据库,即使他们无权访问这些数据库中的任何一个。这就是我所说的门上的“裂缝”。

    如果您可以阻止这些人甚至无法连接,那么您在保护您的服务器方面已经走了很长一段路。

    Public 角色授予登录名的其他服务器级别权限。如果可能,您应该像关闭访客帐户一样关闭它。

    【讨论】:

    • 这对我来说毫无意义。如果我错了,请纠正我,但要成为公共角色的成员,您必须登录。如果无法连接到服务器,登录将毫无用处。如果 public 没有连接权限,我无论如何都要给每个登录权限。
    • 就我而言,我没有没有 db 用户帐户的登录。此外,授予我服务器上公共角色的唯一权限是 TCP 端点权限。我认为这个建议不适用于我的情况。你确实想出了一个我没有想到的场景。
    猜你喜欢
    • 1970-01-01
    • 2011-03-25
    • 2011-09-07
    • 2011-02-13
    • 1970-01-01
    • 2019-05-21
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多