首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle 12c多租户特性详解:全局用户与本地用户的原理与维护

PDB 中存在,也只能在特定的 PDB 中执行操作;在 PDB 中不能创建公用用户,而在 CDB 中(CDB$ROOT 中)同样不能创建本地用户。...在 CDB 中创建的公用用户要求以 c##或C## 开头,以下测试以常规方式命名的用户将会创建失败,符合规则的用户可以被创建: 当创建公用用户时,Oracle 会向每个 PDB 中同时创建该用户,如果...在 CDB 中,每个权限或者是在某个 Container 中的本地权限,或者是在所有Container中生效的公用权限。公用权限确保公用用户无需在不同 PDB中重复授权。...在 CDB 中,每个角色或者是基于 PDB 的本地角色,或者是对全体 PDB 生效的公用角色,所有系统提供的角色(如 DBA)都属于公用角色。...$ 表中,以下查询显示在 PDB 中存在的用户在 CDB 中并不存在,也就是说 PDB 中的用户,仅在 PDB 自己的 SYSTEM 表空间字典表 USER$ 中存在: 首先我们跟踪一下在 PDB 中创建用户的过程

2.3K50

Oracle 12c系列(一)|多租户容器数据库

丨公用用户 公用用户是在root数据库中和所有的PDB数据库中都存在的用户,公用用户必须在根容器中创建,然后此用户会在所有的现存的PDB中自动创建,公用用户标识必须以c##或者C##开头,sys和system...用户是Oracle在CDB环境中自动创建的公用用户。...create user c##yyh identified by yyh; 创建完成公用用户,需要为公用用户赋予所有可插拔数据库的权限,公用用户才可以访问其他PDB,如果在连接根容器时仅仅为公用用户赋予了相关权限...丨临时文件 每个PDB都有自己的临时表空间,如果PDB没有自己的临时表空间文件,那么,PDB可以使用CDB$ROOT中的临时表空间。...USER_DATA_TABLESPACE 子句可以在容器中创建额外的表空间,这个表空间在后续使用PDB$SEED创建PDB时会被复制到PDB中。

2.7K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle 12c系列(一)|多租户容器数据库

    ·公用用户 公用用户是在root数据库中和所有的PDB数据库中都存在的用户,公用用户必须在根容器中创建,然后此用户会在所有的现存的PDB中自动创建,公用用户标识必须以c##或者C##开头,sys和system...create user c##yyh identified by yyh; 创建完成公用用户,需要为公用用户赋予所有可插拔数据库的权限,公用用户才可以访问其他PDB,如果在连接根容器时仅仅为公用用户赋予了相关权限...CDB中你需要再次了解的基础知识 SYSTEM/SYSAUX 在CDB的数据库环境中,SYSTEM/SYSAUX表空间并不是公用,CDB$ROOT以及每个PDB都拥有自己的SYSTEM和SYSAUX表空间...临时文件 每个PDB都有自己的临时表空间,如果PDB没有自己的临时表空间文件,那么,PDB可以使用CDB$ROOT中的临时表空间。...USER_DATA_TABLESPACE 子句可以在容器中创建额外的表空间,这个表空间在后续使用PDB$SEED创建PDB时会被复制到PDB中。

    1.9K130

    【DB笔试面试522】在Oracle中,数据库和实例的关系是什么?

    •SYSTEM/SYSAUX:在CDB的数据库环境中,SYSTEM/SYSAUX表空间并不是公用,CDB$ROOT以及每个PDB都拥有自己的SYSTEM和SYSAUX表空间。...•Undo Mode:在12.2之前,每个CDB实例仅有一个UNDO表空间,所有的PDB共用CDB$ROOT中的UNDO文件。在12.1中,所有的在一个实例中的PDB只能共享同一个UNDO表空间。...根或PDB只能有一个默认临时表空间或表空间组。每个PDB可以具有供该PDB中本地用户或公用用户使用的临时表空间。...•时区:在CDB环境中可以为CDB以及所有的PDB设置相同的时区,也可以为每个PDB设置单独的时区。...在12.1中,CDB和PDB的字符集必须一样,但是在12.2中,CDB和PDB的字符集可以不一样。 •根据应用程序的需要,PDB可以在PDB中创建表空间。

    1.6K30

    YH9:Oracle Multitenant 知识库

    由于 PDB 的引入,Oracle 数据库的备份和恢复也发生了很多变化,基于 PDB 级别的表空间、库备份同时被支持。...请参考 Oracle 12c多租户特性详解:PDB 的备份与恢复 4、PDB的出与入 在12c中,将一个非 CDB插入到CDB中,需要CDB处于read-only模式,新增加的包 DBMS_PDB...这也是对以前版本中传输表空间技术的增强。同理,unplug一个PDB,也是可以简单通过命令实现,会在后台生成对应的文件。...在 CDB 模式下,公用用户(Common User)和本地用户(Local User)两个概念被引入进来,公用用户可以在 CDB 和 PDB中同时存在,能够连接 ROOT 和 PDB 进行操作;而本地用户则只在特定的...PDB 中存在,也只能在特定的 PDB 中执行操作;在 PDB 中不能创建公用用户,而在 CDB 中(CDB$ROOT 中)同样不能创建本地用户。

    1.3K70

    Oracle容器数据库的安装和使用

    引入的特性,指的是可以容纳一个或者多个可插拔数据库的数据库,这个特性允许在CDB容器数据库中创建并且维护多个数据库,在CDB中创建的数据库被称为PDB,每个PDB在CDB中是相互独立存在的,在单独使用PDB...2.2根环境的用户   在之前的版本中,单个PDB可以有多个用户,每个用户又可以有自己的表空间,上升到CDB级别,用户被分成了两类: 公用用户和本地用户。...公用用户 公用用户是在root数据库中和所有的PDB数据库中都存在的用户,公用用户必须在根容器中创建,然后此用户会在所有的现存的PDB中自动创建,公用用户标识必须以c##或者C##开头,sys和system...用户是Oracle在CDB环境中自动创建的公用用户。...公用用户 本地用户指的是在PDB中创建的普通用户,只有在创建它的PDB中才会存在该用户,并且PDB中只能创建本地用户。

    1.9K41

    Oracle12.2 多租户环境下的授权管理

    题记:在多租户环境中,权限可以全局授予整个CDB,一个应用容器数据库(application container),或者单个的PDB。在多租户环境下,往往牵一发而动全身,因此合理授权就显得格外重要。...在满足下列条件的情况下,系统权限可以被root及所有现有的和新创建的PDB中生效: 1、授权者属于common 用户,而被授权者是common用户、common角色或者public 角色,不要全局地对...GRANT SELECT ON DBA_OBJECTS TO c##hr_admin CONTAINER=ALL; 授予或回收PDB的访问权限 可以在多租户环境中授予和撤销PDB访问权限。...连接到root时查看有关root,CDB和PDB的数据 当公用用户执行查询时,可以限制X $表和V $,GV $和CDB_ *视图的视图信息。...如果要启用用户c##hr_admin来查看与该用户可访问的所有CONTAINER_DATA对象中的CDB$ROOT,SALES_PDB,HR_PDB容器相关的信息,请忽略FOR V$SESSION。

    1.2K70

    Oracle数据库的体系结构和用户管理

    一个CDB中最多可以插入250个PDB,在PDB中,seedPDB为模板PDB,它为新创建的PDB提供模板,其他的PDB可以根据需要创建、删除。...可插拔功能可以加速数据库的部署,给一个CDB打补丁就可以经所有的更新同步到其上的所有PDB中。...SGA:所有用户都可以访问的实例的共享内存区域。数据块、事务处理日志、数据字典信息等都存储在SGA中。 PGA:一类非共享的内存,专用于特定的服务器进程,并且只能够由这个进程访问。...3、自定义用户 Oracle 12c支持创建自定义用户,由于PDB的引入,自定义用户范畴和之前版本有所不同。在CDB模式下,用户分为两种:公用用户和本地用户。...公用用户可以在CDB和PDB中使用,而本地用户只能在PDB中使用。在CDB环境中,不允许创建本地用户。Oracle规定,在CDB中创建公用用户时,用户名必须以c##开头。

    1.1K10

    Oracle 12c多租户特性详解:从Schema到PDB的变化与隔离

    CDB 需要在创建数据库时指定选项,如下图所示,必须选择“创建为容器数据库”选项,然后才能够在其中创建 PDB,在 CDB 之外的常规数据库中是不能够包含 PDB 的。...以下页面中,选择包含了1个 PluggableDatabase,CDB 和 PDB 的名称就在这个页面分别指定: 在完成 CDB 的创建之后,可以登陆到数据库,查询数据库的创建模式,在 v$database...其关系如下图所示: ③ PDB PDB 是用户基于特定需求建立的对象容器,在创建 CDB 时,可以不同时创建 PDB,PDB 随后可以根据用户的需求创立。...在一个 Non-CDB 的数据库中,数据库自身的元数据和用户元数据是混合存储的,如创建图示中的 EMP、DEPT 等数据表,其对象信息、表信息等都要存储在 OBJ$、TAB$ 等数据字典中,这在某些特殊情况下...,可能会引起核心数据字典的性能衰减和故障: 在 CDB 的模式下,由于 PDB 具有独立的 SYSTEM 和 SYSAUX 表空间,其元数据和系统元数据自然分离,用户数据的字典信息也就无需再记录到系统的元数据中

    1.9K100

    Oracle 19c 之 RPM 包安装初体验 CDB(二)

    4)零个或多个用户创建的 PDB:PDB 包含特定功能集所需的数据和代码。例如,PDB 可以支持特定的应用程序,例如人力资源或销售应用程序。在创建 CDB 时不存在 PDB。...DB 共享后台进程,内存,以及重做日志文件,控制文件以及位于根容器的元数据,undo 表空间在 12.2 以后的版本中实现本地管理,位于各自的 PDB 中。...在多租户架构中,每个 PDB 使用很少的内存,控制文件和日志文件公用的,那么只有数据文件是位于 PDB 自己特定的目录下。...CDB_XXX 可以查看数据库中所有的对象,而 DBA_XXX 可查看 PDB 内的所有对象。...最后说一下公共用户和本地用户,顾名思义在 CDB中的用户便可以称为公共用户,以 C## 或者 c## 开头,所有PDB 均可查看到;本地用户只能是单独 PDB 可查看。 ?

    88120

    CDB PDB 用户权限管理

    列显示 YES 为公共用户,在所有容器包括将来创建的 PDB 中均存在COMMON 列显示 NO 为本地用户,仅在当前容器中存在cdb 中创建公用用户创建公共用户 c##user01,设置密码为 oracleSYS...username in ('SYS','HR','C##USER01');pdb 中创建本地用户pdb 中创建本地用户 user02SYS@pdb1> create user user02 identified...','USER02');公用和本地权限和角色cdb 中给公用用户授权在 cdb 中指定 container=current 进行授权SYS@cdb1> grant connect to c##user01...container=current;cdb 有权限登录, pdb 没有权限sqlplus c##user01/oracle@cdb1sqlplus c##user01/oracle@pdb1在 cdb...中授权指定 container=allSYS@cdb1> grant connect to c##user01 container=all;cdb pdb 都有权限pdb 中给本地用户授权pdb 中对本地用户授权

    1.6K20

    Oracle中最容易被忽略的那些实用特性

    CDB作为一个母体,可以有N个PDB,且至少有1个PDB。所有PDB共享同一个SGA,和一系列的后台进程。在Oracle中内存加进程被称为实例,也就是说对外是一个实例,下方则是多个数据库。...Oracle中表空间迁移有很多的依赖关系,比如A表空间中存在B表空间的索引之类的,所以在迁移的时候不光要迁移目标表空间,还要迁移所依赖的表空间。而在多租户中PDB是隔离的,因此能够很容易进行迁移。...Oracle会从CDB$ROOT Clone SYSTEM表空间和SYSAUX表空间来创建PDB$SEED,file_name_convert选项指定Clone表空间时新数据文件的位置。...因此,不必要也不能修改某个PDB的内存参数,只能在CDB$ROOT中修改(或者说,只能在CDB级别修改)。 表空间管理 可以在PDB中创建表空间,每个PDB中的数据文件、表空间都是独立的。...多个PDB可以使用同 一表空间名。查询DBA_视图,只能看到当前PDB的信息。 但如果在CDB$ROOT中查询V$视图,可以看到所有PDB中表空间的信息。

    1.2K60

    使用DataPump迁移非CDB到CDB数据库

    那就是将之前的N多非CDB数据库整合到CDB,原来的数据库将作为CDB数据库下一个PDB容器,各个PDB之间也可以通过快速dblink实现交互。...  使用TTS方式迁移     TTS方式与传统的导出导入方式以及可传输数据库多适用于用户定义的对象位于当个表空间情行 2、使用DBMS_PDB包实现   该方式将非CDB数据库构建一个XML...文件用于描述其结构然后在目标端读取它实现导入   此种方式最为简单,但是仅仅使用在Oracle 12c版本中 3、使用复制方式,如GoldenGate   该方式能实现Oracle 12c版本之前最小化停机时间...,但是配置复杂 二、演示使用DataPump迁移非CDB到CDB 演示说明: 1、以下演示将Oracle 11g一个schema soe作为一个pdb导入到Oracle 12c 2、在导入pdb前,做了...as '/tmp'; --创建表空间 SQL> create tablespace report_tbs datafile 2> '/app/oracle/ora12c/oradata/cdb1

    74620

    Oracle 12c CDB数据库中数据字典架构

    SYS用户拥有所有的数据字典表,数据字典基本一般以结尾,如col结尾,如col,tab$等,这些数据字典存放在system表空间中。...3、数据字典包括的内容 数据库对象的定义信息 用户定义信息 PL/SQL代码 用户创建的其他对象等 关于数据字典详细介绍可以参考:Oracle 数据字典和数据字典视图 二、CDB数据库中数据字典架构 1...2、非CDB混用数据字典情形示意图 在新创建的不包含用户数据的非CDB中,数据字典仅包含系统元数据。 例如,TAB$表包含仅描述Oracle提供的表的行,例如TRIGGER$和SERVICE$。...3、CDB分离数据字典情形示意图 在CDB中,数据字典元数据在根和PDB之间分割。 在下图中,表emp和dept位于PDB中。该用户数据的数据字典也驻留在PDB中。...因此,TAB$PDB中的表具有emp表的行和表dept的行。 ? 那对于Oracle提供的系统对象(系统级别数据字典)要如何访问呢,Oracle通过内部指针的方式来实现。

    1.1K10

    Oracle 12c 多租户专题|CDB元数据内幕

    他们都被实例在CDB级别进行管理。对于数据来说,共享公共资源也很简单,因为PDB有自己独立的表空间,而且,可插拔特性仅仅是可传输表空间技术的一种拓展。...但是,数据字典自身的元数据必须共享,举个例子就是,所有dbms_xxx的PL/SQL包都存储在CDB$ROOT中,PDB中仅存放指向他们的一个链接。...除此之外,我们还要创建一个对象链接,这样CDB$ROOT中的表才能存储所有PDB的信息。我用SHARING=METADATA来建表,SHARING=OBJECT来建视图。...这样每个容器中就都创建了这张表。为了更好的理解发生了什么,我往这些表里插入不同的数据。接下来用CDB$VIEW查询所有容器中的数据。...,如果你从PDB中看执行计划,你可以发现对象链接访问的是一个fixed table。

    1.3K110

    【干货】4种Oracle DBaaS部署模式,你在使用哪一种?

    则管理自己的一组表空间,其中包括 SYSTEM 和 SYSAUX、以及用户业务表空间。...采用Oracle 数据库12c部署数据库云,用户的数据库可以采用可插拔数据库PDB进行供应,这些PDB部署在统一的容器数据库CDB之上,共享一个数据库实例,也共享了后台的物理服务器和操作系统,资源共享程度很高...的容器数据库CDB能够部署在一台或多台物理服务器节点构成的集群上,可以灵活控制每个PDB的服务运行在集群一个或多个节点上。...数据库云的所有PDB的数据可以均匀打散分布在数据库存储资源池的所有存储设备上,并且支持跨存储设备的镜像。...当添加/删除新存储设备时、或是硬件出故障时(单块磁盘损坏/单台存储设备损坏),可以进行在线数据自动重分布,使负载均衡和跨存储设备的数据镜像保护仍然得以保持,重分布的过程中数据可正常读写访问,对上层的数据库和应用透明

    1.5K30

    oracle 12.2 local temp的原理和实现

    从Oracle数据库12c开始,可以将Oracle Clusterware和Oracle RAC配置在大型集群中,称为Oracle Flex集群。...关于Flex Cluster,详情请点击:Oracle Flex Clusters 随着12.2的发布,如果是FLEX集群,可以在LEAF NODE创建read only实例,从而引入了local temp...local temp和local undo的概念不一样,首先pdb必须使用自己的temp表空间,local temp指的是RAC环境下,可以在各自的节点上创建local temp表空间,拥有各自的temp...首先,PDB不能使用CDB的temp表空间,PDB和CDB上temp视图查出来的结果都不一样: 连接到PDB1,并查看当前的临时表空间 ?...从上面可以看到,理论上会创建各自的tempfile,在指定文件名结尾加上_1和_2,但是不知V$TEMPFILE视图中为什么没有标明详细的文件名。

    1.1K90

    Oracle 12c多租户特性详解:PDB 的出与入 InAndOut

    将 Non-PDB 插入 CDB 在12c中,可以将一个非 CDB(也即NON-CDB)插入到 CDB 中,这个过程需要在只读模式下进行。...以下测试首先启动一个常规的 Non-CDB 数据库: 这个数据库中已经预先建立了一个数据库用户,并且有一个测试表: 在12c中,新增加的包 DBMS_PDB 可以用于进行迁移: 在 OPEN 模式下执行...这也是对以前版本中传输表空间技术的增强: 以下列表中可以看到,新的 PDB 数据库已经被插入到 CDB 中: 插入成功之后可以连接到数据库进行数据验证: UNPLUG 数据库 通过 UNPLUG 命令可以拔出一个...下表列出了与常用数据库视图相对应的一些 CDB 视图: 在数据库的创建脚本中,还可以找到最核心的底层表 container$ 的创建语句,该底层表用于记录各容器的信息,通过该表与其他对象的关联,CDB...PDB 为云计算而生 在 Oracle 数据库中,PDB 新特性的引入,被称为是为云计算而生的新技术,在云数据库平台上,需要将不同用户的对象、权限等信息彻底分割开来,原有的 Schema 方式并不适合,

    98360
    领券