oracle - ORA-01031: 权限不足 -- 包程序
问题描述
在 oracle 中,当我执行我的包时,出现错误:
ORA-01031: 权限不足
我的用户具有 dba 管理员角色。
mySchema 中的 myPackage。但表的架构不同。
我尝试了下面的脚本,但没有解决我的问题。
grant execute on mySchema.myPackage to otherSchema;
感谢您的兴趣。
execute
mySchema.myPackage.disabledTableConstraint(otherSchema.table_Cons);
解决方案
通过角色授予的特权在 PL/SQL 中并不重要。默认情况下,包以定义者的权限执行,这意味着它们以拥有模式的权限执行。
看起来mySchema
正在尝试禁用 中的约束otherSchema
,所以这基本上就像您以身份登录mySchema
并尝试执行以下操作:
alter table otherSchema.someTable disable constraint myconstraint;
听起来好像mySchema
没有权限这样做otherSchema
。你可以:
- 授予从到的
ALTER TABLE
权限。您必须逐表执行此操作。otherSchema
mySchema
- 将
ALTER ANY TABLE
系统权限授予mySchema
. 这可能很危险。 AUTHID CURRENT_USER
用该子句使过程调用者的权利。这将使过程以调用它的模式的权限运行,在本例中为otherSchema
.
推荐阅读
- html - 从 MediaRecorder 缩放视频
- mysql - 在不同的列中以 1:n 重复 SQL 表中的每个值 n 次
- php - 将帖子从文件保存到 msword
- ejabberd - 如何使用 Erlang 显示数据库用户?
- ssh - ssh 命令分解。有哪些零件?
- hibernate - 休眠关系@ManyToMany 使用@OneToMany&@ManyToOne
- asp.net-mvc - 诊断日志已写入以下位置
- ssas - 将 SSAS 模式从表格更改为多维
- php - 当特定产品类别在 Woocommerce 购物车中时有条件地应用 CSS 样式
- c# - 如何在 .net 核心中使用组件的特定实例或另一个装饰器对象来解析装饰器