一. 用户的种类
⏹在 Oracle 多租户架构中(从 Oracle 12c 开始),用户分为
- 普通用户(Common User)
- 用户的名称必须以 C## 开头,在CDB中创建
- 适用于管理员用户,用户管理CDB下的多个PDB
- 当地用户(Local User)
- 用户的名称无需以 C## 开头,在PDB中创建
- 更适合应用开辟和租户管理
- 我们平常开辟时用的多是当地用户
⏹数据库刚被安装后,并没有当地用户,我们必要通过system用户登录Oracle之后,创建当地用户。
二. 切换session为PDB
⏹SHOW CON_NAME;:显示当前会话所连接的容器名称
- 在包含 CDB(容器数据库)和 PDB(可插拔数据库)的环境中,显示会话所连接的容器的名称。
- 容器可以是根容器(CDB$ROOT)、种子数据库(PDB$SEED)或某个详细的 PDB。
- apluser@ubuntu24-01:~$ sqlplus system/oracle@192.168.118.137/XE
- SQL*Plus: Release 21.0.0.0.0 - Production on Wed Jan 1 09:00:28 2025
- Version 21.16.0.0.0
- Copyright (c) 1982, 2022, Oracle. All rights reserved.
- Last Successful login time: Tue Dec 31 2024 23:15:56 +09:00
- Connected to:
- Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
- Version 21.3.0.0.0
- SQL>
- SQL> SHOW CON_NAME;
- CON_NAME
- ------------------------------
- CDB$ROOT
- SQL>
复制代码 ⏹查看数据库中所有的PDB
- SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS;
- SELECT NAME FROM V$PDBS;
- -- 方式1
- SQL> SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS;
- PDB_ID PDB_NAME STATUS
- ------- ---------- ----------
- 3 XEPDB1 NORMAL
- 2 PDB$SEED NORMAL
-
- -- 方式2
- SQL> SELECT NAME FROM V$PDBS;
- NAME
- --------------
- PDB$SEED
- XEPDB1
复制代码 ⏹切换当前用户的session为PDB
- ALTER SESSION SET CONTAINER = XEPDB1;
|