意外地看到其他模式上的对象

时间:2016-02-21 15:16:34

标签: database oracle oracle11g

我在一家使用Weblogic应用程序和Oracle 11g数据库的公司工作。

我们有很多测试机来测试应用程序。每台机器都连接到同一个数据库实例,但使用不同的模式。

例如,机器编号1使用模式test1并且有自己的一组表,例如test1.paymenttest1.customer等。机器编号2使用模式test2和还有表格test2.paymenttest2.customer

通常,如果我们访问架构test1上的数据库并应用以下查询

select * from all_objects where object_name = 'PAYMENT'

我们会得到一行,其中object_name ='PAYMENT'和owner ='TEST1'

有一天,第2号测试机器上的应用程序无法以错误消息There is more than one owner for type FOO, in the database开头,其中FOO是假名。

我使用此SQL

检查了数据库中的类型FOO

select * from all_objects where object_name = 'FOO'

并获取所有者来自每个模式的行,并认为这是根本原因。

我不允许编辑导致问题的应用程序源代码部分。所以我想在数据库站点修复它。但DBA将缺席一段时间,我没有DBA权限,但我可以访问所有模式test1test2,...

问题是:

为什么select * from all_objects where object_name = 'FOO'会返回其他模式中的行,以及如何使它只返回当前模式中的一行?

0 个答案:

没有答案