我有一个应用程序说查询生成器,它从用户那里输入 sql 查询以从表中选择一些数据
我在 sql server 中执行这个查询
现在我想阻止用户使用 DQl 命令以外的命令
是否可以在 sql server 本身中做
sql server中是否有任何命令可以判断其是否为DQL命令,然后我可以限制它
谢谢
我有一个应用程序说查询生成器,它从用户那里输入 sql 查询以从表中选择一些数据
我在 sql server 中执行这个查询
现在我想阻止用户使用 DQl 命令以外的命令
是否可以在 sql server 本身中做
sql server中是否有任何命令可以判断其是否为DQL命令,然后我可以限制它
谢谢
它的 sql server 查询
那将很难锁定;您可以使用 SQL Server 中的权限采取某种方式,但他们仍然很容易做非常糟糕的事情(例如,不需要很多大表的交叉连接就可以有效地使服务器脱机 - 或者他们可以打开一个可序列化的事务,从一些表中选择,而不是关闭事务)。
我强烈建议不要让用户编写 sql。给他们其他工具来做他们需要的事情。
或者,在不同的服务器上运行查询——理想情况下,您已经推送了数据的安全版本(即没有任何 PII)——它们是否支配服务器并不重要,因为它没有连接到任何重要的东西。有点像SEDE。