查询数据库版本
- SELECT * FROM v$version ;
复制代码 创建用户失败
- create user lingd identified by 123456; // ORA-65096: 公用用户名或角色名无效
复制代码查询官方文档得知,这是oracle_12版本的特性,有兴趣的朋友可以查阅下 官方文档 在CDB容器中用户名必须加c##前缀才能创建成功: - create user c##lingd identifed by 123456;
- grant connect, resource to c##lingd; // 用户授权
复制代码查看用户
- select username, user_id, account_status from dba_users where username like '%LINGD%';
复制代码 查看当前容器
- select sys_context('USERENV','CON_NAME') from dual; // CDB$ROOT
复制代码 查看所有容器
- select con_id, dbid, name, open_mode from v$pdbs;
复制代码 查询结果
- CON_ID DBID NAME OPEN_MODE
- ---------- ---------- ---------- ----------
- 2 2159055928 PDB$SEED READ ONLY
- 3 3019652274 ORACLEDB MOUNTED
复制代码 切换容器
- alter pluggable database ORACLEDB open;
复制代码 再次查看容器状态
- select con_id, dbid, name, open_mode from v$pdbs;
复制代码 查询结果:ORACLEDB 变成了 READ WRITE
- CON_ID DBID NAME OPEN_MODE
- ---------- ---------- ---------- ----------
- 2 2159055928 PDB$SEED READ ONLY
- 3 3019652274 ORACLEDB READ WRITE
复制代码 修改会话的容器
- alter session set container=ORACLEDB; // 一定要先执行上面的“切换容器”SQL语句
复制代码 再次创建用户
- create user lingd identified by 123456;
- grant connect, resource to lingd;
复制代码- 注意:在使用新用户lingd登录时,服务名或SID需调整为你的容器名ORACLEDB,否则会提示用户不存在
复制代码 再次查看用户
- select username, user_id, account_status from dba_users where username like '%LINGD%';
复制代码 如何默认启动PDB?使用SYS用户创建如下触发器即可: - CREATE TRIGGER open_all_pdbs
- AFTER STARTUP
- ON DATABASE
- BEGIN
- EXECUTE IMMEDIATE 'alter pluggable database all open';
- END open_all_pdbs;
- /
复制代码
|