在 Oracle 数据库中具有角色时错误用户没有特权

Posted

技术标签:

【中文标题】在 Oracle 数据库中具有角色时错误用户没有特权【英文标题】:Error user no priviledge when have a role in Oracle Database 【发布时间】:2020-11-12 05:03:58 【问题描述】:

我想问一下oracle数据库。所以我有一个用户 A 和角色 B。在角色 B 中,我有权选择任何表,在表中插入等。我已将角色 B 授予用户 A。如果我正常运行 select 和 insert,我没有问题。但是如果我想编译一个包我有一个问题,它说用户A没有权限。我确信包内的表或过程已被授予角色 B。但它仍然有错误没有特权。还有一个,如果我赋予用户 A 的权限,它可以顺利运行。但是我想把权限放在角色 B 中。我该如何解决?

【问题讨论】:

【参考方案1】:

作为包、过程或函数的对象需要直接授予,而不是通过角色授予。

你在这里有一个很好的解释

https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1065832643319

这里有很好的答案

Why doesn't PL/SQL respect privileges granted by Roles?

【讨论】:

以上是关于在 Oracle 数据库中具有角色时错误用户没有特权的主要内容,如果未能解决你的问题,请参考以下文章

oracle自带用户的讲解

Oracle 权限(grantrevoke)

如何查看oracle用户具有的权限和角色

使用关注点扩展具有角色的用户模型

oracle之sql简单操作

如何查看oracle用户具有的权限和角色?