【问题标题】:ORA-01031: insufficient privileges while using online in create indexORA-01031: 在创建索引中使用 online 时权限不足
【发布时间】:2018-05-30 09:52:45
【问题描述】:

在下面的过程中,当我在线使用时,在执行过程中出现错误“ORA-01031:权限不足”,而在没有在线的情况下运行它运行良好。

CREATE OR REPLACE procedure p_temp_1 is
begin
execute immediate 'CREATE INDEX pp_temp1  ON p_temp  (access_no) online ';
end;

我需要给予哪些特权?

【问题讨论】:

  • 能否请您准确分享我需要给我的超级用户哪些权限,如果您也可以分享声明,那将是很大的帮助
  • 我们不想使用 AUTHID CURRENT_USER ,我们想赋予缺失的权限
  • 如果您在过程之外运行 create 语句,您会看到什么?
  • 在程序外运行时创建索引
  • 所以只是澄清一下:在过程之外,您可以使用或不使用onlineoption 作为普通 SQL 语句创建索引;当您执行该过程时,如果语句没有online,它会创建索引,但如果它确实有online,则会出现错误?编辑问题以显示所有四个场景和您获得的结果可能会很有用;并显示您正在使用的 Oracle 版本和补丁级别。

标签: oracle indexing plsql


【解决方案1】:

检查了权限并且用户被授予“CREATE TABLE”但是 来自 RESOURCE 角色。存储的 PL/SQL 需要直接授权和 因此,该过程因“权限不足”而失败。所以 之后直接授予用户“CREATE TABLE”系统权限 创建索引的位置。

From here

【讨论】:

  • 可能是,create index online 需要create table 权限(工作正常),但如果您在 pl/sql 中执行它,则需要直接授予它。正是这种情况。
  • 那篇文章,我引用的状态是,如果您使用online 选项,它会设置一些锁并创建某种系统日志表(据我所知,这就是您需要创建表权限的地方)。 . 可能是错误的
  • 好的,抱歉,我猜我没有正确阅读,而且在玩 privs 时我仍然无法在 11g 或 12c 中重新创建它。也许 PSU 修复了它...
猜你喜欢
  • 2010-09-13
  • 2020-12-10
  • 2013-04-14
  • 2017-09-04
  • 2014-09-09
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多