【发布时间】:2015-10-09 16:11:41
【问题描述】:
我在 OracleXE db 中有 2 个用户:ALICE 和 BOB。以下步骤序列在我的本地机器上是成功的:
- 连接为
ALICE - 创建顶级类型:
create or replace type testtype as object(x number(16));(编辑:更正误导 Matthew McPeak 的错误名称 foo) - 连接为
BOB -
BOB看到ALICE的类型:-
select * from all_types返回行 -
declare x ALICE.testtype; begin null; end;编译
-
在类型对BOB 不可见的情况下应用于我们的开发数据库产生相同的步骤,即选择不返回该类型的行,PLSQL 块编译失败并出现PLS-00201: identifier 'ALICE.TESTTYPE' must be declared 错误。
我需要使类型可见,所以我问:什么可能导致这种差异?(我猜想某些需要授予类型或公共同义词,但这个简约的例子证明相反。)用户/会话的某些属性?尽管我希望解决方案是微不足道的,但我在谷歌搜索方面尽了最大努力,现在卡住了。两个数据库都是 Oracle 11g(11.2.0.1.0 开发,11.2.0.2.0 本地)。
谢谢!
【问题讨论】:
-
可能 Bob 和 Alice 从一个数据库到另一个数据库具有不同的角色和权限
标签: database oracle rights-management