oracle创建用户相关命令
Oracle CDB/PDB 用户管理分类总结CREATE USER C##FM_COPY IDENTIFIED BY “Tna@ssw0rd”DEFAULT TABLESPACE FMTBSCONTAINER=ALL;– 授权 CONTAINER=ALL;– 核心参数:全局授权,同步到所有PDBGRANT DBA, CONNECT, RESOURCE, UNLIMITED TABLESPACE
Oracle CDB/PDB 用户管理分类总结
公共用户(CDB$ROOT)创建与管理
创建公共用户
CREATE USER C##FM_COPY IDENTIFIED BY “Tna@ssw0rd”
DEFAULT TABLESPACE FMTBS
CONTAINER=ALL;
全局授权(同步到所有PDB)
– 授权 CONTAINER=ALL; – 核心参数:全局授权,同步到所有PDB
GRANT DBA, CONNECT, RESOURCE, UNLIMITED TABLESPACE TO C##FM_COPY CONTAINER=ALL;
验证公共用户
– 查询fm用户是在pdb下 为空是在cdb根目录
SELECT cu.USERNAME, cp.PDB_NAME, cu.COMMON, cu.CON_ID
FROM CDB_USERS cu
LEFT JOIN CDB_PDBS cp ON cu.CON_ID = cp.CON_ID
WHERE UPPER(cu.USERNAME) = ‘C##FM_COPY’;
本地用户(特定PDB)创建与管理
切换至目标PDB容器
ALTER SESSION SET CONTAINER=AODB; – 替换为实际PDB名
创建本地用户
CREATE USER FM_LOCAL IDENTIFIED BY “Password123”
DEFAULT TABLESPACE FMTBS;
本地PDB内授权
GRANT DBA, CONNECT, RESOURCE TO FM_LOCAL;
容器切换操作
查询当前容器
SELECT SYS_CONTEXT(‘USERENV’,‘CON_NAME’) AS CURRENT_CONTAINER FROM DUAL;
切换至根容器
ALTER SESSION SET CONTAINER=CDB$ROOT;
切换至指定PDB
ALTER SESSION SET CONTAINER=IMF; – 替换为实际PDB名
表空间管理
查询所有de表空间
SELECT
TABLESPACE_NAME,
STATUS,
CONTENTS,
EXTENT_MANAGEMENT
FROM
DBA_TABLESPACES ORDER BY TABLESPACE_NAME;
创建表空间(需指定PDB路径)
CREATE TABLESPACE FMTBS
DATAFILE ‘/u01/app/oracle/oradata/SAMP/IMF/fmtbs01.dbf’
SIZE 2G AUTOEXTEND ON;
验证表空间存在性
– 查询表空间在当前pdb中是否存在
SELECT TABLESPACE_NAME, STATUS
FROM DBA_TABLESPACES
WHERE TABLESPACE_NAME=‘FMTBS’;
用户删除操作
删除公共用户(需在根容器执行)
DROP USER C##FM_COPY CASCADE;
删除本地用户(需在对应PDB执行)
ALTER SESSION SET CONTAINER=AODB;
DROP USER FM_LOCAL CASCADE;
是否删除成功
– 验证:删除后查询不到,说明成功
SELECT USERNAME FROM DBA_USERS WHERE USERNAME=‘C##FM_COPY’;
总结
– 查询所有pdb
SELECT PDB_NAME, STATUS FROM DBA_PDBS;
– 是否是CDB根目录
SELECT SYS_CONTEXT(‘USERENV’,‘CON_NAME’) AS CURRENT_CONTAINER FROM DUAL;
– 查询相关用户在那个pdb
SELECT
cu.USERNAME, – 实际存储的用户名(大写/小写)
cp.PDB_NAME, – fm用户所在的PDB(核心结果)
cu.COMMON, – YES=公共用户(CDBROOT),NO=本地用户(某PDB)cu.CONID−−容器ID(1=CDBROOT),NO=本地用户(某PDB) cu.CON_ID -- 容器ID(1=CDBROOT),NO=本地用户(某PDB)cu.CONID−−容器ID(1=CDBROOT,其他=PDB)
FROM
CDB_USERS cu
LEFT JOIN
CDB_PDBS cp ON cu.CON_ID = cp.CON_ID
WHERE
UPPER(cu.USERNAME) = ‘FM’;
切换PDB
ALTER SESSION SET CONTAINER=AODB;
或者
ALTER SESSION SET CONTAINER=CDB$ROOT;
查询所有de表空间(判断表空间是否存在)
SELECT
TABLESPACE_NAME,
STATUS,
CONTENTS,
EXTENT_MANAGEMENT
FROM
DBA_TABLESPACES ORDER BY TABLESPACE_NAME;
– 查询表空间在当前pdb中是否存在
SELECT TABLESPACE_NAME, STATUS FROM DBA_TABLESPACES WHERE TABLESPACE_NAME=‘FMTBS’;
创建表空间
create tablespace fmtbs datafile ‘/u01/app/oracle/oradata/SAMP/aodb/fmtbs01.dbf’ size 2G autoextend on;
创建用户
根目录创建用户名称 必须以C## 开头
CREATE USER C##FM_COPY IDENTIFIED BY “Tna@ssw0rd” DEFAULT TABLESPACE FMTBS;
授权 CONTAINER=ALL; – 核心参数:全局授权,同步到所有PDB
grant dba,connect,resource,unlimited tablespace to C##FM_COPY ;
更多推荐


所有评论(0)