我有一个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。感谢您的收看。请帮帮我。
发布于 2017-12-20 01:27:46
您是否正在尝试在容器或根级别向c##user1授予sysdba?这是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
)中的普通用户,另一个是特定于根目录的本地用户。
您已经有一个对整个CDB拥有SYSDBA权限的"C##user1“用户,所以如果这是您想要的,您可以连接到根目录并删除本地的"C##user1”用户。如果您只想要一个只在该根目录上具有SYSDBA特权的本地用户,我建议删除"C##user1“普通用户,然后连接到根目录,并将sysdba授予那里的本地用户。
我链接的这篇文章的标题是"Overview of the Multitenant Architecture",我建议你在做出决定之前对它进行审查。
发布于 2022-02-07 15:08:53
在cdb连接下,尝试
grant sysdba to c##user1 container=all
https://stackoverflow.com/questions/47890048
复制相似问题