SQL给最终用户:利弊

Dmi*_*ezo 4 sql sql-server security reporting

曾几何时,远在遥远的星系中,我见证了几位开发者之间的讨论.主题是,如果给最终用户访问生产SQL服务器(MS SQL 2008)是个好主意,以便让他们能够根据自己的数据制作自己的报告.

这是商界人士的要求 - "我们的客户希望制作自定义报告".

提出这个问题的人声称:

  1. 他能够通过一组权限为用户提供"只读访问权限",并使系统绝对安全.
  2. SQL最初是一种"最终用户"语言,现在可能就是这样.
  3. 拥有运行SQL查询的权限,用户将能够做他们想要的不干扰开发人员和支持.

其他反对此声称的人声称:

  1. 崩溃的MS SQL很容易崩溃.禁止进入.
  2. 无论如何,向最终用户公开SQL和数据库结构并不是一个好主意; 这是一个糟糕的设计.
  3. SQL对于非程序员来说太复杂了,因此,它不会让他们的生活更轻松.

您如何看待最终用户访问SQL?

先感谢您!

Jak*_*sel 5

您不仅可以将用户限制为只读访问权限,还可以通过启用查询调控器成本限制来使某些事情更安全.这将尝试在运行查询之前对查询进行一些成本分析,如果它们超过预定义的阈值,它将拒绝运行它们.

比这更好的是有一个可用于查询的克隆数据库.这可能就像运行生产系统备份的单独服务器一样简单.根据您的数据需要"实时"的方式,您可以相应地调整备份/恢复间隔.

至于它是否暴露数据库直接查询非程序员是个好主意,仍然取决于用户是多么精明的.他们可以教SQL吗?简单的事情真的不是那么难.