Permissions

創建可插拔數據庫後權限不足

  • March 13, 2022

我不得不承認我對這個可插入數據庫的東西一無所知。我在 PostgresSQL、MySQL、SQL Server 方面有經驗,但 Oracle 讓我失敗了。

我在 Docker 映像中執行 Oracle 18c。我想創建一個名為bookshop. 按照一些說明,我執行了以下命令:

CREATE PLUGGABLE DATABASE bookshop ADMIN USER pdb_adm IDENTIFIED BY Oradoc_db1
   file_name_convert=('/opt/oracle/oradata/XE/pdbseed','/opt/oracle/oradata/XE/BOOKSHOP');

接下來在說明中,我執行:

ALTER PLUGGABLE DATABASE xepdb2 OPEN READ WRITE;

除了我不能。我收到消息:

ORA-01031: 權限不足。

然後我嘗試:

DROP PLUGGABLE DATABASE bookshop;

我得到了同樣的資訊。

當我嘗試:

SELECT vp.name, vp.open_mode
FROM v$pdbs vp;

我明白了

最後,當我試圖弄清楚我是誰時:

SELECT user FROM dual;

我明白了SYSTEM

在這一點上,我不知道如何控制這個可插入的數據庫。我需要切換到其他使用者嗎?如何?

首先,嘗試以 SYS 而不是 SYSTEM 身份連接到您的容器數據庫。SYSTEM 是一個模板 DBA 帳戶,但 SYS(或任何具有 SYSDBA 權限的使用者,這實際上使他們成為 SYS)更強大,必須用於某些特定的命令。

connect sys as sysdba;

接下來,您的 xepdb2 數據庫已經以“READ WRITE”模式打開,因此您無需再次打開它。

最後,使用以下命令打開您的 BOOKSHOP 數據庫:

alter pluggable database bookshop open;

從概念上講,考慮可插拔數據庫的方式與考慮與裸機伺服器相關的虛擬機相同。它是一種邏輯結構,允許您整合和共享數據庫伺服器上的某些資源。容器數據庫 (CDB) 有點像您的虛擬機管理程序:除了創建可插拔數據庫 (PDB) 或執行某些系統級活動(如備份和恢復)之外,您通常不會亂用它。您的所有應用程序架構和構造都在 PDB 中。

引用自:https://dba.stackexchange.com/questions/308673