Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/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# 从.NET代码发送到SQL Server的SQL查询验证_C#_Sql_.net_Sql Server - Fatal编程技术网

C# 从.NET代码发送到SQL Server的SQL查询验证

C# 从.NET代码发送到SQL Server的SQL查询验证,c#,sql,.net,sql-server,C#,Sql,.net,Sql Server,我维护了几个用c#编码的.NET应用程序和服务,这些应用程序和服务访问SQL db进行CRUD操作 我希望确保发送到数据库的每个查询都包含一个重要的业务逻辑部分,如果缺少,我希望查询失败 我希望避免使用代码解决方案(这不重要,原因就是这样), 我想知道: SQL server是否有办法在执行查询之前拦截查询以进行验证,而不影响查询执行计划? 你知道,在“代码到SQL”的公交线路上增加另一个公交车站 澄清: 我希望验证逻辑在一个地方,编写一次(没有重复),并应用于所有查询 另一个澄清: 如果代码解

我维护了几个用c#编码的.NET应用程序和服务,这些应用程序和服务访问SQL db进行CRUD操作

我希望确保发送到数据库的每个查询都包含一个重要的业务逻辑部分,如果缺少,我希望查询失败

我希望避免使用代码解决方案(这不重要,原因就是这样), 我想知道:

SQL server是否有办法在执行查询之前拦截查询以进行验证,而不影响查询执行计划? 你知道,在“代码到SQL”的公交线路上增加另一个公交车站

澄清:

我希望验证逻辑在一个地方,编写一次(没有重复),并应用于所有查询

另一个澄清:

如果代码解决方案不需要在我当前的DB访问基础设施中进行任何修改,并且有这样一个现有的编写库,而我不需要实现它,那么它是可以接受的。
也就是说,像一个“包装dll”一样,可以启用这种功能。

在sql中,您可以做的唯一限制是权限和授权

没有任何机制限制登录执行的内容

这就像是想限制ssh隧道仅为某些命令运行一样。

可能的解决方案是您可以在查询中进行验证


或者编写一个通用函数,根据您的验证标准,用C#验证sql server的所有输入。sql中唯一可以设置的限制是权限和授予

没有任何机制限制登录执行的内容

这就像是想限制ssh隧道仅为某些命令运行一样。

可能的解决方案是您可以在查询中进行验证


或者编写一个通用函数,用于根据您的验证标准以C#的形式验证sql server的所有输入s

您可以使用存储过程进行创建、更新、删除操作,也可以使用存储过程或视图进行读取操作。你可以在它们中添加任何验证、假设和检查。添加了澄清。我完全理解你的问题。你肯定可以在c#中这样做,但实际上我不知道在sql中是否有任何方法可以这样做,但是如果所有验证都是在QueryIt中自己完成的,那么有什么问题吗?我不认为你可以在sql中添加一个类似处理程序的程序。即使可以,您也可以使用解析器来评估查询?请阅读SSIS包有一个预执行处理程序,因此我正在研究它。您可以使用存储过程进行创建、更新、删除操作,也可以使用存储过程或视图进行读操作。你可以在它们中添加任何验证、假设和检查。添加了澄清。我完全理解你的问题。你肯定可以在c#中这样做,但实际上我不知道在sql中是否有任何方法可以这样做,但是如果所有验证都是在QueryIt中自己完成的,那么有什么问题吗?我不认为你可以在sql中添加一个类似处理程序的程序。即使您可以使用解析器来评估查询,也可以阅读SSIS包有一个预执行处理程序,所以我正在研究它。