允许用户创建存储过程有什么含义?

时间:2014-02-05 14:26:59

标签: sql security stored-procedures

我们正在研究一种情况,即通过使用特定于每种情况的存储过程而不是通用代码,可能会获得巨大的性能提升。

目前数据库已被锁定。 不言而喻,我打算验证所有不受信任的输入,但我希望了解任何/所有风险,并尽可能避免。

那么,在某些不受信任的数据通过网络滑落并最终存储在存储过程中的情况下,添加的风险是什么?

我的直觉告诉我这是一个坏主意,但我目前无法证明这一点。

2 个答案:

答案 0 :(得分:0)

我同意这是一个坏主意。使用存储过程的一个很好的理由是防止用户生成的输入,即sql注入。我建议在任何面向公众的申请中强烈反对这一点。也许您可以找到一些最常见的用例并提供从中选择的选项?

答案 1 :(得分:0)

使用存储过程的一个真正好处是,它提供了一层安全性,并且易于在存储过程级别管理安全性。

抛开安全问题,如果查询写得不好,我认为没有任何性能改进。它可能会导致整个服务器崩溃。