【问题标题】:grant all privileges to an user in Oracle 12c在 Oracle 12c 中向用户授予所有权限
【发布时间】:2019-02-17 04:08:42
【问题描述】:

在 Ora11g 中,我曾经将所有权限授予用户,如下所示。

create user xx identified by psw;
grant create session, grant any privilege to xx;
grant all privileges to xx;

但在 Ora 12c 中,当我执行授予权限时,我收到以下错误。

从第 2 行开始的错误命令 - 授予创建会话,授予 xx 错误报告的任何权限 - ORA-00604:错误发生在 递归 SQL 级别 1 ORA-20997:“GRANT ANY PRIVILEGE”授予不 允许 ORA-06512:在“RDSADMIN.RDSADMIN”,第 79 行 ORA-06512:在第 79 行 2 00604. 00000 - “错误发生在递归 SQL 级别 %s” *原因:处理递归 SQL 语句时出错 (适用于内部字典表的语句)。 *Action:如果堆栈中描述的情况下一个错误 可以更正,这样做;否则请联系 Oracle 支持。

我尝试了1 中建议的答案,但似乎不起作用。

1Regarding Users in Oracle 12c

出现以下错误。

GRANT All PRIVILEGE TO name 错误报告 - ORA-00922: 缺失或 无效选项 00922. 00000 - “缺少或无效选项” *原因:
*行动

非常感谢您对“向 ora12c 中的用户授予所有权限的帮助”。

谢谢!

【问题讨论】:

  • 这是单个实例,还是容器数据库?如果它是容器数据库,则必须先连接到适当的可插拔数据库,然后才能发出授权,除非您使用的是普通用户(用户名以 c## 为前缀,并且处理方式略有不同。)我'我猜测您正在连接到根容器并尝试在那里创建用户,而不是在它所属的可插入数据库中。要更改为可插拔,请执行以下“alter session set container=[NAME OF PLUGGABLE DATABASE]”
  • 同时检查“BEFORE GRANT ON DATABASE”触发器——当有人设置触发器专门阻止授权时,通常会出现错误堆栈。
  • 这听起来像您在亚马逊 rds 上使用 oracle 并且您的帐户没有所需的权限。

标签: oracle oracle12c privileges


【解决方案1】:

是的。我能够通过命名空间授予权限。

Create user xx identified by psw account unlock; 
grant connect to xx;
grant create session, create table, create sequence, create trigger to
xx; 
alter user xx quota 5M on USERS;
commit;

如果你需要给无限配额,你用这个。

ALTER USER xx quota unlimited on USERS;
commit;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 2015-02-05
    相关资源
    最近更新 更多