Oracle ORA-65175:无法在根目录中本地授予SYSDBA权限

Oracle ORA-65175:无法在根目录中本地授予SYSDBA权限,oracle,oracle12c,Oracle,Oracle12c,我有一个oracle 12c数据库。 我想将sysdba授予C##user1。 这是用户表。 当我执行这个命令时,我可能会得到一个错误 grant sysdba to c##user1 container=current Error report - SQL Error: ORA-65175: cannot grant SYSDBA privilege locally in the root 65175. 00000 - "cannot grant SYSDBA privileg

我有一个oracle 12c数据库。 我想将sysdba授予C##user1。 这是用户表。

当我执行这个命令时,我可能会得到一个错误

grant sysdba to c##user1 container=current

Error report -
SQL Error: ORA-65175: cannot grant SYSDBA privilege locally in the root
65175. 00000 -  "cannot grant SYSDBA privilege locally in the root"
*Cause:    An attempt was made to grant SYSDBA privilege locally in the root
           of a multitenant container database (CDB).
*Action:   While connected to the root, SYSDBA privilege can only be granted
           commonly.
当我执行这个命令时,我可以得到2个C##user1用户

如何将sysdba授予C##user1。 谢谢收看。
请帮帮我。

您是否正在尝试在容器或根级别将sysdba授予c##user1?这是12C中的一个重要区别,如。
CON_ID
列将告诉您每个用户所在的位置-
CON_ID=0
表示该行属于整个CDB,而
CON_ID=1
表示该行属于根目录

您当前有两个“C##user1”用户,一个是所有容器中存在的普通用户(
CON#u ID=0
),另一个是特定于根的本地用户

您已经有一个“C###user1”用户在整个CDB上拥有SYSDBA权限,因此如果您需要,可以连接到根用户并删除本地“C##user1”用户。如果您只希望本地用户在该根上具有SYSDBA权限,我建议删除“C###user1”公共用户,然后连接到根并将SYSDBA授予本地用户


我链接到的那篇文章的标题是,我建议你在做出任何决定之前都要对它进行一次回顾

谢谢你的回答。当我使用C##user1(conId=1)时,我得到了ora01031错误。权限不足的系统dbms_会话。;;;;;当我使用C##user1(conId=0)时,找不到表或视图。如何解决这个问题?“C##user1(conId=1)”是没有SYSDBA权限的本地用户,因此您将无法调用很多系统级过程,如DBMS#U会话。当您连接到常见的“C##user1(conId=0)”用户时,您将登录到CDB的容器,而不是根目录。在发出“ALTER SESSION SET CONTAINER=CDB$root”或根目录中的任何名称之前,您将无法在根目录中查看表。
grant sysdba to c##user1 container=all