gpt4 book ai didi

sql - 为什么 Oracle 不告诉您哪个表或 View 不存在?

转载 作者:太空狗 更新时间:2023-10-30 01:37:42 26 4
gpt4 key购买 nike

如果您使用过 Oracle,您可能会收到有用的消息“ORA-00942:表或 View 不存在”。消息不包含丢失对象的名称是否有合理的技术原因?

关于这是出于安全原因的争论听起来像是 TSA 精心策划的。如果我是攻击者,我会知道我刚刚试图利用哪个表,并且能够轻松地解释这个无用的消息。如果我是一名通过多层应用程序代码处理复杂联接的开发人员,通常很难分辨。

我的猜测是,最初实现此错误时,有人忽略了添加对象名称,现在,人们担心修复它会破坏兼容性。 (代码做一些愚蠢的事情,比如解析错误信息,如果它发生变化,将会很困惑。)

是否有开发人员友好(而不是招募 DBA)的方法来确定丢失表的名称?


虽然我已经接受了与主题相关的答案,但它并没有真正回答我的问题:为什么错误消息中没有名称部分? 如果有人能提出来有了真正的答案,我很乐意改变我的投票。

最佳答案

您可以在参数文件(纯文本或 spfile)中设置一个 EVENT 以强制 Oracle 在 user_dump_dest 中转储详细的跟踪文件,对象名称可能在其中,如果不是,则 SQL 应该在。

EVENT="942 trace name errorstack level 12"

如果您使用的是纯文本文件,则需要将所有事件设置保持在连续的行中。不确定它如何应用于 spfile。

关于sql - 为什么 Oracle 不告诉您哪个表或 View 不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com