在 Oracle 数据库中,CDB(Container Database)和 PDB(Pluggable Database)是多租户架构的核心组件。以下是一些常用的 CDB 和 PDB 命令:
CDB 命令:
连接到 CDB:
sqlplus sys as sysdba
打开 CDB:
ALTER DATABASE OPEN;
关闭 CDB:
SHUTDOWN IMMEDIATE;
创建 PDB:
CREATE PLUGGABLE DATABASE pdb_name ADMIN USER pdb_admin IDENTIFIED BY password;
列出所有 PDBs:
SELECT name, open_mode FROM v$pdbs;
切换到 PDB:
ALTER SESSION SET CONTAINER = pdb_name;
限制 CDB 访问和操作:
限制 CDB 的连接:
ALTER DATABASE RESTRICTED;
这将限制普通用户对 CDB 的连接,只允许具有
RESTRICTED SESSION
特权的用户连接。禁用 CDB 的启动:
ALTER SYSTEM SET "_ALLOW_RESETLOGS_CORRUPTION"=FALSE;
这将阻止使用 RESETLOGS 打开 CDB,以增加数据库的安全性。
启用审计:
AUDIT SESSION;
启用审计,以记录用户对 CDB 的操作。
PDB 命令:
连接到 PDB:
sqlplus username/password@pdb_name
打开 PDB:
ALTER PLUGGABLE DATABASE pdb_name OPEN;
关闭 PDB:
ALTER PLUGGABLE DATABASE pdb_name CLOSE;
删除 PDB(在 CDB 中):
DROP PLUGGABLE DATABASE pdb_name INCLUDING DATAFILES;
列出 PDB 中的表空间:
SELECT tablespace_name FROM dba_tablespaces;
列出 PDB 中的对象:
SELECT owner, object_name, object_type FROM all_objects;
切换到 CDB 的根容器:
ALTER SESSION SET CONTAINER = CDB$ROOT;
限制 PDB 访问和操作:
限制 PDB 连接:
ALTER PLUGGABLE DATABASE pdb_name RESTRICT;
这将限制对指定 PDB 的连接。
限制 PDB 的资源:
ALTER PLUGGABLE DATABASE pdb_name RESOURCE GOVERNOR;
使用资源管理器限制 PDB 的资源使用。
禁用 PDB 的启动:
ALTER PLUGGABLE DATABASE pdb_name OPEN READ ONLY;
这将只允许以只读模式打开 PDB。