我有一个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用户。
grant sysdba to c##user1 container=all
如何将sysdba授予C ## user1。 感谢您查看。 请帮助我。
答案 0 :(得分:2)
您是否尝试将sysdba授予Container或Root级别的c ## user1?这是12C内的重要区别,如Container is logically separate from the rest of the CDB。 CON_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",我建议您在做出任何决定之前先进行审核。