1

除了执行我在 SQL 2005 安装中禁用的 XP_CmdShell 之外,获得对我的数据库的 DBO 权限的恶意用户还能做什么:

  • 到我的数据库,
  • 到我的服务器?

我正在评估某人获得 DBO 以证明在应用程序中运行“最低权限”用户帐户的最坏情况安全风险。一些人声称,由于我们不使用“机密数据”,因此获得 DBO 的人的影响是微乎其微的。

4

6 回答 6

3

他可以运行任何 XP_ sproc,因此它可能会弄乱注册表并弄乱您的整个服务器。删除/更改表等...

于 2008-11-17T15:43:54.380 回答
3

dbo 是数据库所有者——它可能是也可能不是 sa。作为 dbo,您基本上可以自由支配拥有的数据库- 显然,这可能导致权限更改、表删除等。

作为 sa,您可以自由支配服务器。这包括安装新的扩展过程(或 .NET 程序集,如果您启用了 CLR),以及 dbo 可以做的所有事情(适用于所有数据库)。而且,您还可以再次启用 xp_cmdshell

于 2008-11-17T16:12:27.097 回答
2

网上有很多关于 SQL 注入的信息。限制您连接到 SQL 的用户的权限是一项非常重要的防御措施。

http://en.wikipedia.org/wiki/SQL_injection

这是我几年前遇到的一个简单而可怕的例子。网站使用 URL 动态生成 SQL 语句并运行它们。我能够猜到像这样的网址

www.blah.com/.../load.aspx?itemid=1

像这样生成SQL

SELECT * FROM id=1 的项目

所以我发送了这个网址:

www.blah.com/.../load.aspx?itemid=1;删除表项

砰。

至少,如果数据库连接不是 dbo,这将失败。

于 2008-11-17T15:48:23.323 回答
0

说白了,如果他拥有你的数据库,他就拥有你数据库。也就是说,你可以吻别你的数据了。

于 2008-11-17T16:24:52.283 回答
0

也就是说,你可以吻别你的数据了。

但是你在磁盘磁带上有备份,所以你是金子!

于 2008-11-18T16:38:25.360 回答
0

是的。典型的防御是“好吧,至少他不能弄乱他的数据库之外的任何东西”(未启用 xp_CmdShell)。我,我不喜欢在我家锁着的壁橱里有一个疯狗强奸犯。但这个类比对管理层来说并不是一个很好的卖点。

于 2008-11-18T19:39:08.240 回答