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

时间:2017-12-19 15:20:10

标签: oracle oracle12c

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

当我执行此命令时,我可能会收到错误。

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用户。

grant sysdba to c##user1 container=all

enter image description here

如何将sysdba授予C ## user1。 感谢您查看。 请帮助我。

1 个答案:

答案 0 :(得分:2)

您是否尝试将sysdba授予Container或Root级别的c ## user1?这是12C内的重要区别,如Container is logically separate from the rest of the CDBCON_ID列将告诉您每个用户所在的位置 - Con_ID=0表示该行属于整个CDB,而CON_ID=1表示该行属于根。

您目前有两个“C ## user1”用户,一个是存在于所有容器(CON_ID=0)中的普通用户,另一个是特定于root用户的本地用户。

您已经有一个“C ## user1”用户对整个CDB具有SYSDBA权限,因此,如果这是您想要的,您可以连接到root并删除本地“C ## user1”用户。如果您只想要一个仅在该根目录上具有SYSDBA权限的本地用户,我建议删除“C ## user1”普通用户,然后连接到root并将sysdba授予那里的本地用户。

我链接的文章标题为"Overview of the Multitenant Architecture",我建议您在做出任何决定之前先进行审核。