oracle 12c 创建PDB用户即Local User

时间:2021-03-19 21:38:36

oracle数据库的结构是一个数据库实例下有许多用户,每一个用户有自己的表空间,即每一个用户相当于mysql中的一个数据库。

不久前下了oracle 12c的数据库,安装之后建user时才知道oracle12c 有一个很大的变动就是引入了pdb可插入数据库,而且在cdb中只能创建c##或者C##开头的用户,只有在pdb数据库中才能创建我们习惯性命名的用户,oracle称之为Local User,前者称之为Common User,于是乎查询相关的资料,得到以下解决方法:

1:进入PDB数据库

在12C安装时,会提示你是否安装可插接式数据库,我是安装了设为PDBORCL;如果你没有安装的话可以用以下语句创建一个可插入数据库

 create pluggable database pdborcl admin user pdbadmin identified by Learnin
g roles=(connect)
file_name_convert=
('E:\Databases\oracle\oradata\oraclekd\pdbseed',
'E:\Databases\oracle\oradata\oraclekd\pdborcl');
其中pdborcl是我创建的可插接式数据库,pdbadmin是创建的用户,Learning是密码。

file_name_convert换成相应目录就OK了

创建完成之后

alter session set container=pdborcl;
alter pluggable database pdborcl open;
grant dba to pdbadmin;

接下来关键来了,在oracle_home\product\12.1.0\dbhome_1\NETWORK\ADMIN目录下找到tnsnames.ora,用记事本打开,在
ORACLEKD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oraclekd)
    )
  )


之下添加

PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBORCL)
    )
  )
PDBORCL就是你创建的可插入数据库,保存好之后重启oracle服务(貌似只重启监听程序就OK),打开sql*plus
用户名是PDBADMIN@PDBORCL 密码是Learning
OK,你现在已经创建了一个PDB用户了。现在你可以登录这个用户了
接下来是用sql developer创建连接的时候了,显然有sql developer这么强大的工具,怎么能不用呢
创建连接时连接名随意取,用户名就是PDBADMIN, 密码是Learning,选服务名称,填入PDBORCL
至此可以用sql developer操作PDB数据库了