Permissions
創建可插拔數據庫後權限不足
我不得不承認我對這個可插入數據庫的東西一無所知。我在 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 中。