浙江省委宣传部副部长、省委网信办主任赵磊:守正创新 辩证施策 全力推动网络生态治理工作迈上新台阶
2026-02-10
美创产品全面入围中直机关2025年网络设备框架协议采购项目
2026-02-04
连续5年!美创再获中国网络安全产业联盟“先进会员单位”表彰
2026-01-21
每周安全速递³⁷¹ | 勒索软件攻击导致心理健康机构超11万人数据泄露
2026-01-06
四年同行,韧性共铸:西南某商行携手美创科技再度通过年度容灾大考
2025-12-26
存储域
数据库加密 诺亚防勒索访问域
数据库防水坝 数据库防火墙 数据库安全审计 动态脱敏流动域
静态脱敏 数据水印 API审计 API防控 医疗防统方运维服务
数据库运维服务 中间件运维服务 国产信创改造服务 驻场运维服务 供数服务安全咨询服务
数据出境安全治理服务 数据安全能力评估认证服务 数据安全风险评估服务 数据安全治理咨询服务 数据分类分级咨询服务 个人信息风险评估服务 数据安全检查服务在Oracle Database 12C R2版本中,Oracle带来了新的Application Containers特性,该特性增强了原有的多租户功能,在CDB root容器中可以撞见一个叫做Application root的容器,和CDB root类似,可以在其内创建多个依赖于Application root的Application PDB,接下来将讲解基于新特性下的用户关系。
在多组环境中,共有2种用户:公用用户(Common User)和本地用户(Local User)。

1. 公共用户
Oracle提供了2种类型的公共用户:CDB公共用户和Application公共用户。
CDB公共用户是在CDB root下创建的用户,在CDB root、每个现有的或者未来创建的PDB和Application root中都存在唯一标识和密码。CDB公共用户既可以是Oracle提供的也可以自己创建,例如SYS和SYSTEM就是Oracle提供的公共用户,它们具有DBA权限,可以连接整个CDB环境。
自己创建的CDB公共用户的用户名必须以C##或c##开头。每个CDB公共用户可以在不同的PDB中拥有不同的权限,例如创建一个用户c##test,只赋予它连接PDB1的权限而不赋予连接PDB2的权限。
Application公共用户是在Application root下创建的用户,它只在Application容器中是公用的。换句话说,Application公共用户无法CDB公共用户那样,能够连接整个CDB环境。Application公共用户负责创建、打开、关闭、插拔和删除Application PDB。
这两种用户都负责管理各自root中的公共对象。如果有合适的权限,甚至也可以在PDB中进行操作,例如赋予local用户权限。这些用户还可以在不同的容器中授予公共用户不同的权限。
下面来举例来如何创建公共用户:
一 、CDB公共用户:
CDB公共用户必须以C##或c##开头,并且Oracle会在每个 PDB 中同时创建该用户。

刚创建好的c##test要有create session权限才能连接PDB,下面的例子是单独赋予PDB1的create session,这样的话c##test只能连接PDB1,而不能连接其他PDB。

如果想让c##test连接所有的PDB,就需要在CDB root下赋予权限,并加上container=all参数。

二、 Application公共用户:
在创建Application容器的同时,创建Application公共用户apptest,与CDB公共用户不同的是用户名不需要c##开头。

创建好了Application容器和用户后,需要在tnsnames.ora中配置连接信息才能连接Application容器apptest(从这点可以看出Application和PDB类似)。


总体来说,公共用户具有以下特点:
1. 公共用户可以连接任意容器,包括CDB$ROOT,当然它需要有create session权限。
2. Application公共用户不会拥有在除自己Application容器外的任何容器的create session权限。因此Application公共用户会限制于自己的容器中。
3. 自己创建的CDB公共用户必须遵守一个规则,用户名的前缀为参数COMMON_USER_PREFIX指定的值,默认值是C##或c##。
4. 公共用户的用户名在其所在容器的PDB中都是唯一的。
2.本地用户
本地用户和公共用户不同,它是在PDB中创建的用户,并只在创建的PDB中有效。本地用户也可以拥有系统权限,但是这些权限只能作用于所在的PDB中。
下面来举例来如何创建本地用户:
创建用户的方式和11G一样,要注意的是先连接PDB后才能创建本地用户。

区别于公共用户,本地用户有以下特点:
1. 本地用户无法创建公共用户,可以给公共用户赋权,但是权限只局限于PDB中,也就是说只能赋予本地权限,无法赋予公共权限。
2. 可以将公共角色赋予本地用户,但是角色中的权限只能作用于本地。
3. 本地用户在所在PDB中必须是唯一的。
4. 在有合适的权限下,本地用户可以连接公共用户的对象,例如本地用户可以连接公共用户的表,只要公共用户赋予它权限。
转自杭州美创科技有限公司公众号,如需二次转载,请联系marketing@mchz.com.cn