对于一个习惯使用oracle11g的数据库管理员,开始接触安装oracle12c后,第一个问题就是怎么连基本的用户都建立不了,连DBA权限都无论用。html
原来oracle11的DB变为了CDB(Container Database)和PDB(Pluggable Database)两个概念,CDB就至关于oracle11之前建立的数据库,而PDB则是oracle12引入的插接式数据库,可建立多个挂载在CDB下,这就意味着你没法在CDB中建立普通用户,所建立的用户前必须加上“C##”来显示这是CDB级的用户才能成功建立,java
例:create user C##joker identified by "joker"; ----“C##joker”为用户名,“joker”为密码linux
因此对于用惯了oracle11的同志来讲,要建立普通用户须要在PDB环境中这么添加。sql
在安装好oracle12后,数据库
首先以 SYS as SYSDBA@ORCL登陆,至关于进入CDB;windows
而后,建立PDB挂载在CDB下:session
在windows中,直接进入“Database Configuration Assistant”添加PDB;oracle
在Linux中建立PDB,参考以下:ide
http://jingyan.baidu.com/article/f71d6037ac90101ab641d1d1.htmlspa
可以使用以下sql查询你所建立的PDB:
select pdb_id,pdb_name,dbid,status,creation_scn from dba_pdbs;----查询pdb有哪些
以后,在CDB环境中进入PDB,sql以下:
alter session set container=JOKERPDB;---开启PDB数据库链接 alter pluggable database JOKERPDB open;----打开PDB数据库
以后,手动配置PDB的tnsnames.ora
JOKERPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = JOKERPDB) ) )
以后,进入tns配好的PDB数据库,并在PDB下建立PDB用户,sql以下:
create user JOKER identified by "joker"; grant DBA to JOKER;---给用户DBA权限;友情提示:权限大小酌情
以后,给用户建立表空间,sql以下:
create tablespace JOKERSPACE logging datafile 'D:/oracle12/oradata/joker/datafile/JOKER.dbf' size 524288000 autoextend on next 104857600 maxsize 32767M extent management local; alter user JOKER default tablespace JOKERSPACE;---用户绑定表空间 alter user JOKER quota unlimited on JOKERSPACE;---限制表空间,unlimited表示不限制
最后附上导入DMP数据:
windows在cmd中执行,linux用"su oracle"执行 imp username/password@pdb file=D:/joker.dmp fromuser=JOKER touser=JOKER log=imp.log buffer=100000000 username/password@pdb----依次是PDB用户名,密码,数据库名 log----------------------生成导入日志,地址本身定义 buffer-------------------缓冲区,防止数据过大
Oracle12C 链接数据库 "jdbc:oracle:thin:@localhost:1521/JOKERPDB";(端口号跟斜线,再也不是冒号)