授予访客访问数据库的安全性影响

我正在比较我的开发服务器和生产,并find一个这样的:

EXEC sp_grantdbaccess N'guest' 

任何人如何利用连接string中的访客用户? 它似乎没有映射到login。 在酒吧里我看到客人是公众的一员。 客人似乎不可删除。

这是某种匿名访问帐户或什么? 如果这是一个安全问题,我该如何解决这个问题?

如果到SQL Server的login没有其他方式进入数据库,则来宾用户允许访问。 您必须首先有一个有效的login到SQL Server。 无论授予给客人什么许可,该login都将有权执行。 有几件事要看:

  • 客人有什么权限?
  • 公共angular色拥有什么权限(包括guest在内的所有用户都是该angular色的成员)?
  • 客人是什么angular色以及这些angular色拥有什么权限?

一般的build议是不启用访客用户。 如果login应该有权访问数据库,最好授予显式访问权限。 这使审计更容易。 这就是说,你会注意到,如果你看一下系统数据库master和msdb启用了guest用户。 这是一个要求。

除了数据删除或其他恶意活动,首先想到的是未经授权的用户访问您的数据。 对于一些攻击者来说,有时候不是你可以销毁的东西,而是你可以复制到他们的系统上的东西。 如果他们可以复制你所拥有的任何敏感数据,那么他们是否试图回来并不重要 – 毕竟他们有自己的副本! 在这种情况下,马几乎不在门外,在事实之后封锁违规只停止其他尝试,而不是复制已经采取的数据。