【问题标题】:Oracle Roles, Privileges, and custom types spread across different schemasOracle 角色、权限和自定义类型分布在不同的模式中
【发布时间】: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

我错过了什么?我已将权限授予角色,并将角色授予用户。这对类型有不同的作用吗?

提前致谢!

【问题讨论】:

    标签: oracle types roles


    【解决方案1】:

    尝试默认为用户添加角色

    grant table_privs to DEV2;
    ALTER USER DEV2 DEFAULT ROLE table_privs;
    

    否则你需要使用SET ROLE

    【讨论】:

    • 谢谢!默认角色做到了。在授予角色后必须激活角色,这对我来说似乎很奇怪。
    • 如果我的回答解决了你的问题,请标记为。
    猜你喜欢
    • 2013-09-03
    • 2021-06-24
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多