Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 避免sql server本身的sql注入_C#_Sql Server 2008 - Fatal编程技术网

C# 避免sql server本身的sql注入

C# 避免sql server本身的sql注入,c#,sql-server-2008,C#,Sql Server 2008,我有一个应用程序,比如QueryBuilder,它从用户输入的sql查询中选择表中的一些数据 我正在sql server中执行此查询 现在我想让用户停止使用DQl命令以外的命令 是否可以在sql server本身中执行此操作 sql server中是否有任何命令可以判断其DQL命令是否正确,然后我可以对其进行限制 谢谢 它的sql server查询 这将是极难锁定的;您可以通过某种方式使用SQL server中的权限,但对他们来说,做一些非常糟糕的事情还是很容易的(例如,不需要太多大表的交叉连接

我有一个应用程序,比如QueryBuilder,它从用户输入的sql查询中选择表中的一些数据

我正在sql server中执行此查询

现在我想让用户停止使用DQl命令以外的命令

是否可以在sql server本身中执行此操作

sql server中是否有任何命令可以判断其DQL命令是否正确,然后我可以对其进行限制

谢谢

它的sql server查询

这将是极难锁定的;您可以通过某种方式使用SQL server中的权限,但对他们来说,做一些非常糟糕的事情还是很容易的(例如,不需要太多大表的交叉连接就可以有效地使服务器脱机,或者他们可以打开一个可序列化的事务,从一些表中选择,而不关闭事务)

我强烈建议不要让用户编写sql。给他们其他工具来做他们需要的事情


或者,在另一台服务器上运行查询—理想情况下,您已经推送了数据的安全版本(即没有任何PII)—在这种情况下,它们是否主导服务器并不重要,因为它没有连接到任何重要的东西。有点像。

您需要更具体一些吗?SQL是如何输入的?你能锁定参数吗,还是全部都是明文?您可以让他们与不同的DB用户连接,只需有限的时间rights@M阿克拉:哪个问题!?!?输入是什么?谨慎的条款?还是sql?@MarcGravel其sql server查询请检查UpdateEyes,通常最佳做法是将报告数据库作为生产数据库的镜像(从生产中定期刷新),因此报告查询不会降低生产速度。顺便说一句,有一些用于生成报告的应用程序,如Microsoft Report Builder或Korzh Easy Query。