oracle怎么使用scott,Oracle 12c 使用scott等普通用户的步骤

Oracle 12c 使用scott等普通用户的方法

目录:

一、前言

二、使用普通用户

三、自动启动PDB

一、前言

最近电脑上安装了oracle 12c数据库,想体验下新特性。安装完后,便像11g一样在dos窗口进行下面的操作:

SQL*Plus: Release 12.1.0.2.0 Production on 星期日 8月 9 13:06:33 2015Copyright (c)1982, 2014, Oracle. Allrights reserved.

连接到:

OracleDatabase 12c Enterprise Edition Release 12.1.0.2.0 - 64bitProductionWith the Partitioning, OLAP, Advanced Analytics and RealApplication Testing opt

ions

SQL> alter user scott account unlock identified bytiger;alter user scott account unlock identified bytiger*第1行出现错误:

ORA-01918: 用户 'SCOTT' 不存在

神马情况!难道没有SCOTT用户?用sql查了下,确实没查到(不是没有):

SQL> select username from dba_users where username like 'SCOTT';

未选定行

哦,那我就自己建个吧(当时想多了o.o):

SQL> create user scott identified by tiger;

create user scott identified by tiger

*

第 1 行出现错误:

ORA-65096: 公用用户名或角色名无效

。。。。。

呵呵,刚刚接触12c的新手估计都会犯这样的错误吧。其实oracle 12c在结构上做出了调整,引入了CDB和PDB的概念。具体可以看下潇湘隐者的文章:

http://www.cnblogs.com/kerrycode/p/3386917.html

其实,我刚才的操作是在CDB中的操作,用sys默认登录的是CDB,但是如果想在CDB中创建用户(可以理解为公共用户)的话,那么必须在用户名前面加上“c##”:

SQL> create user c##joker identified by joker;

用户已创建。

oracle 这么做的目的是为了区分CDB的用户(前面带“c##”的用户)和PDB用户。那么问题来了,如何使用普通用户呢?网上查阅了很多资料,但都是说不清楚,今天总结下吧。

二、使用普通用户

其实,oracle 12c的普通用户必须在PDB下使用,PDB可以自己创建,也可以使用12c自带的。首先,查看下12c自带的PDB吧:

SQL> select con_id, dbid, guid, name , open_mode fromv$pdbs;

CON_ID DBID GUID NAME OPEN_MODE---------- ---------- -------------------------------- ------------------------------ ----------

4071321146 E89E8DA2866E3157E043DE07A8C09238 PDB$SEED READ ONLY

1930201447E89E9418B882350CE043DE07A8C092B6 PDBORCL MOUNTED

SQL>

要想链接到PDBORCL,必须要在tns文件下加入如下内容:

PDBORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = PDBORCL)

)

)

这样,我们就可以链接PDBORCL了。

首先,要启动PDBORCL,先用sys登录到CDB,进行如下操作:

SQL> alter session set container =PDBORCL;

会话已更改。

SQL> STARTUP

这样我们就可以用sys登录到PDBORCL了:

SQL> conn sys@pdborcl/admin assysdba

已连接。

我们查一下用没有SCOTT用户:

SQL> select username from dba_users where username like '%SCOTT%';

USERNAME--------------------------------------------------------------------

SCOTT

原来,SCOTT在PDBORCL下。

SQL> alter user scott account unlock identified bytiger;

用户已更改。

SQL> conn scott@pdborcl/tiger

已连接。

SQL> select ename,empno,job from emp offset 5 rows fetch next 5 rows only;

ENAME EMPNO JOB---------- ---------- ---------

BLAKE 7698MANAGER

CLARK7782MANAGER

SCOTT7788ANALYST

KING7839PRESIDENT

TURNER7844 SALESMAN

这样,我们就可以像11g那样使用像scott这样的普通用户了!

三、自动启动PDB

我们可以通过创建触发器的方式来自动启动PDB,用不着每次还得先用sys登录CDB,然后启动PDB。触发器代码如下:

CREATE OR REPLACE TRIGGERopen_all_pdbs

AFTER STARTUPON DATABASE

BEGIN

EXECUTE IMMEDIATE 'alter pluggable database all open';END open_all_pdbs;

我们实验一下:

SQL> CREATE OR REPLACE TRIGGERopen_all_pdbs2AFTER STARTUP3 ON DATABASE

4 BEGIN

5 EXECUTE IMMEDIATE 'alter pluggable database all open';6 ENDopen_all_pdbs;7 /触发器已创建

SQL> shutdownimmediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL>startup

ORACLE 例程已经启动。

Total System Global Area1660944384bytes

Fixed Size3046320bytes

Variable Size989856848bytesDatabase Buffers 654311424bytes

Redo Buffers13729792bytes

数据库装载完毕。

数据库已经打开。

SQL> conn scott@pdborcl/tiger

已连接。

总结:

要想像11g那样使用普通用户,就得在PDB下面使用。

参考文献:

http://www.cnblogs.com/kerrycode/p/3386917.html

http://blog.csdn.net/yuguanquan1990/article/details/17495331

http://www.askmaclean.com/archives/autostart-pdb-pluggable-database.html

http://blog.csdn.net/liou825/article/details/10054589

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值