【发布时间】:2015-02-02 23:13:29
【问题描述】:
我有一个架构,其中包含我的项目 DEV2 中的绝大多数表。
另外,我有一个包含 DEV2 使用的 oracle 自定义类型的架构:PUBLIC_TYPES。
我希望能够在 DEV2 上创建访问 PUBLIC_TYPES 中的角色的触发器,但更愿意使用角色执行此操作,这样当我创建 DEV3(DEV2 的克隆)时,我可以将角色授予编译触发器之前的 DEV3。
目前,如果我执行以下操作:
grant all on public_types.type_name to DEV2;
然后(在 DEV2 用户上)我输入:
desc public_types.type_name;
我得到了类型的正确描述。
但是,如果我改为执行以下操作:
create role TABLE_PRIVS;
grant all on public_types.type_name_2 to TABLE_PRIVS;
grant table_privs to DEV2;
(然后切换到我的 DEV2 用户,然后描述)
desc public_types.type_name_2
我明白了
ORA-04043: object public_types.type_name_2 does not exist
我错过了什么?我已将权限授予角色,并将角色授予用户。这对类型有不同的作用吗?
提前致谢!
【问题讨论】: