脚本网 > 数据库 > oracle > Oracle数据库创建本地用户、授予权限、创建表并

Oracle数据库创建本地用户、授予权限、创建表并

admin oracle

一. 用户的种类

⏹在 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

⏹切换当前用户的sessionPDB

  • ALTER SESSION SET CONTAINER = XEPDB1;