我们部署了一个基本数据库服务,我使用sqlplus
连接到该服务,管理员用户是我们在Oracle云Web UI中创建基本数据库系统时配置的。我正在连接主数据库。我正在尝试使用SQL命令创建PDB。我知道在web UI中可以做到这一点,但我想用SQL来自动创建和设置。
PDB的创建按预期工作:
SQL> CREATE PLUGGABLE DATABASE mypdb ADMIN USER "system" IDENTIFIED BY "<password>";
Pluggable database created.
SQL> SELECT name FROM v$pdbs;
NAME
--------------------------------------------------------------------------------
PDB$SEED
MASTER_PDB1
MYPDB
但是如果我想打开PDB,我会得到:
SQL> ALTER PLUGGABLE DATABASE mypdb open;
*
ERROR at line 1:
ORA-01031: insufficient privileges
正如我所说的,我正在连接创建DB系统时配置的管理员用户,所以我很困惑为什么我没有打开PDB的权限。
1条答案
按热度按时间ybzsozfc1#
从
ALTER PLUGGABLE DATABASE
的文档:https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ALTER-PLUGGABLE-DATABASE.html#GUID-A29491AD-8F0F-4E52-9D94-57FC3FF8FBC7先决条件
您必须连接到CDB。
...
若要指定pdb_change_state_from_root子句,当前容器必须是根或应用程序根,您必须通过身份验证为AS SYSBACKUP、AS SYSDBA、AS SYSDG或AS SYSOPER,并且必须通常授予您SYSBACKUP、SYSDBA、SYSDG或SYSOPER权限,或者在根或应用程序根本地以及要更改其状态的PDB本地授予您。
您不能以PDB的管理员用户身份打开PDB。您必须作为在CDB和PDB中具有SYSDBA、SYSBACKUP、SYSDG或SYSOPER权限的用户连接到CDB。最有可能的是,这与您最初创建PDB时使用的用户相同。PDB“admin”用户是一个本地PDB用户,它只在PDB打开后 * 在PDB内 * 具有DBA权限。