以下是我希望阻止在我的服务器上运行的查询类型的示例:
begin
While True
LOOP
dbms_output.put_line('tst');
END LOOP;
end
此查询(或其他类似查询)可能通过 Oracle JDBC 瘦驱动程序访问我的 Oracle 服务器。我愿意阻止此查询在 JDBC 配置级别、数据库服务器配置级别或通过架构内的用户权限运行。我希望用户继续能够运行正常的选择/插入/更新/删除查询。老实说,如果没有任何 PL/SQL 类型命令可用,而只有标准 SQL,我会很高兴。
Update
我还应该提到,我希望用户继续能够在 SQL 查询中使用标准函数。我只是真的不希望他们做任何看起来像过程编程的事情(并且必须担心这些事情的陷阱,如上所示)。
您无法阻止人们针对您的服务器编写过程 PL/SQL 代码。但是,根据您要解决的问题的具体性质,您可能还有其他选择。我脑海中浮现出两个选择……
You can 创建个人资料与强制实施各种资源限制的数据库用户关联。因此,您可以限制单个调用可以消耗的 CPU 量或它可以执行的读取次数。这可以让您自动终止执行诸如编写无限循环之类的操作的会话。请注意,RESOURCE_LIMIT
初始化参数需要设置为 TRUE,以便 Oracle 在配置文件中强制实施资源限制。
您可以使用Oracle资源管理器优先考虑对资源的访问,以降低开发人员的错误会占用服务器上所有可用资源并导致重要生产流程匮乏的风险。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)