通过上面的操作可以发现,可以在CDB中管理PDB,如CDB中通过命令“alter pluggable database orclpdb open”可以将PDB数据设置为打开状态。当然也可以在PDB中维护,如执行“shutdown immediate”命令和“startup”命令分别关闭和打开PDB数据库。在CDB和PDB中切换也是非常方便的,只需执行“alter session set container=xxx”命令即可。
连接到可插拔数据PDB有两种方法,一种是执行命令“sqlplus / as sysdba”进入CDB,然后通过“alter session set container=xxx”命令切换到PDB;另一种方法是执行“sqlplus sys/oracle@orclpdb sa sysdba”命令直接进入PDB数据库,其中orclpdb是pdb容器的名称,而且还要在/u01/app/oracle/product/12.2.0/dbhome_1/network/admin/tnsnames.ora文件中增加以下内容:
[oracle@oracle ~]$ vim /u01/app/oracle/product/12.2.0/dbhome_1/ network/admin/tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) ORCL = ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ---------------------------------------------------- <!--分界线,以上不需要进行--> ORCLPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = Oracle)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb) ) ) 三、用户管理在创建一个新数据库时,Oracle将创建一些默认数据库用户,比如:SYS、SYSTEM等用户。SYS和SYSTEM用户都是Oracle的管理用户。如果在安装过程中选择安装示例数据库,则会自动创建HR用户,HR用户是Oracle数据库的一个示范用户,也可以根据需求导入其他示例数据库。示例数据库里面包含一些测试展示用的示例表。下面简单介绍一下SYS、SYSTEM和自定义用户。
1、SYSSYS用户是Oracle中的一个超级用户,主要用来维护系统信息和管理实例。数据库中所有数据字典和视图都存储在SYS模式中。数据字典存储了用来管理数据库对象的所有信息,是Oracle数据库中非常重要的系统信息。SYS用户只能以SYSOPER或SYSDBA角色登录数据库系统。
2、SYSTEMSYSTEM用户是Oracle中默认的数据库管理员,它拥有DBA权限。该用户模式中存储了Oracle管理工具使用的内部表和视图。通常通过SYSTEM用户管理Oracle数据库的用户、权限和存储等,不建议在SYSTEM模式中创建用户表。SYSTEM用户不能以SYSOPER或SYSDBA角色登录系统,只能使用以默认方式(数据库身份验证的方式)登录。
3、自定义用户Oracle 12c支持创建自定义用户,由于PDB的引入,自定义用户范畴和之前版本有所不同。在CDB模式下,用户分为两种:公用用户和本地用户。公用用户可以在CDB和PDB中使用,而本地用户只能在PDB中使用。在CDB环境中,不允许创建本地用户。Oracle规定,在CDB中创建公用用户时,用户名必须以c##开头。
通常情况下,出于安全考虑,对于不同用户的数据表需要不同的访问权限,因此,就需要创建不同的用户。Oracle中的CREATE USER命令用于创建新用户。每个用户都有一个默认空间和一个临时表空间。如果没有指定,Oracle就将USERS设为默认表空间,将TEMP设为临时表空间。创建用户的语法如下:
权限是执行某种类型的SQL语句挥着存取其他用户数据库对象的权力。在Oracle中,权限分为系统权限和对象权限两类。
1、系统权限系统权限是指在数据库中执行某种系统级别的操作,或者针对某一类的对象执行某种操作的权限。例如,在数据库中创建表空间的权力,或者在数据库中创建表的权力,都属于系统权限。系统权限示例如下图:
常见的系统权限如下:
CREATE SESSION:连接到数据库;
CREATE TABLE:创建表;
CREATE VIEW:创建视图;
CREATE SEQUENCE:创建序列;
一个新用户创建后,首选要授予其CREATE SESSION权限,使其可以登录到数据库。
2、对象权限