【发布时间】:2023-03-07 05:32:02
【问题描述】:
这是我希望阻止在我的服务器上运行的查询类型的示例:
begin
While True
LOOP
dbms_output.put_line('tst');
END LOOP;
end
此查询(或其他类似查询)可能通过 Oracle JDBC 瘦驱动程序访问我的 Oracle 服务器。我愿意阻止此查询在 JDBC 配置级别、数据库服务器配置级别或通过模式中的用户权限运行。我希望用户继续能够运行正常的选择/插入/更新/删除查询。老实说,如果没有任何 PL/SQL 类型的命令可用,而只有标准 SQL,我会很高兴。
更新
我还应该提到,我希望用户继续能够在他们的 SQL 查询中使用标准函数。我只是真的不希望他们做任何看起来像程序编程的事情(并且不得不担心这些事情的陷阱,如上所示)。
【问题讨论】:
-
我假设这是一个 prod 服务器,因为那是相当有限的?
-
@Ben 的限制对我来说很好,但是是的,这是一个“各种各样的”产品服务器。这是一个我想保持和运行的服务器,就像它是生产一样,但它是一个你可以说它始终处于积极“开发”状态的服务器。如果您愿意,它几乎是一个“生产”开发服务器。
-
那么邪恶的笛卡尔连接呢,你想禁用所有连接吗?我认为分离 prod 和 dev 实例,并进行代码审查可能是一个更好的开始。
-
@tbone - 我也知道这种风险。我不想禁用所有连接,但我确实计划采取措施通过限制资源利用率来缓解这种情况。不幸的是,您将 prod 与 dev 分开的建议(虽然通常很简单)不适用于我的情况。
标签: sql oracle jdbc plsql oracle11g