Oracle 12c 使用普通用户的步骤
来源:互联网 发布:苹果8没网络 编辑:程序博客网 时间:2024/06/08 11:41
一、前言
最近电脑上安装了oracle 12c数据库,想体验下新特性。安装完后,便像11g一样在dos窗口进行下面的操作:
SQL*Plus: Release 12.1.0.2.0 Production on 星期日 8月 9 13:06:33 2015Copyright (c) 1982, 2014, Oracle. All rights reserved.连接到:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit ProductionWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsSQL> alter user scott account unlock identified by tiger;alter user scott account unlock identified by tiger *第 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##”或“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 from v$pdbs; CON_ID DBID GUID NAME OPEN_MODE---------- ---------- -------------------------------- ------------------------------ ----------4071321146 E89E8DA2866E3157E043DE07A8C09238 PDB$SEED READ ONLY1930201447 E89E9418B882350CE043DE07A8C092B6 PDBORCL MOUNTEDSQL>
要想链接到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 as sysdba已连接。
我们查一下用没有SCOTT用户:
SQL> select username from dba_users where username like '%SCOTT%';USERNAME--------------------------------------------------------------------SCOTT
原来,SCOTT在PDBORCL下。
SQL> alter user scott account unlock identified by tiger;用户已更改。SQL> conn scott@pdborcl/tiger已连接。SQL> select ename,empno,job from emp offset 5 rows fetch next 5 rows only;ENAME EMPNO JOB---------- ---------- ---------BLAKE 7698 MANAGERCLARK 7782 MANAGERSCOTT 7788 ANALYSTKING 7839 PRESIDENTTURNER 7844 SALESMAN
这样,我们就可以像11g那样使用像scott这样的普通用户了!
三、自动启动PDB
我们可以通过创建触发器的方式来自动启动PDB,用不着每次还得先用sys登录CDB,然后启动PDB。触发器代码如下:
CREATE OR REPLACE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASEBEGIN EXECUTE IMMEDIATE 'alter pluggable database all open';END open_all_pdbs;
我们实验一下:
SQL> CREATE OR REPLACE TRIGGER open_all_pdbs 2 AFTER STARTUP 3 ON DATABASE 4 BEGIN 5 EXECUTE IMMEDIATE 'alter pluggable database all open'; 6 END open_all_pdbs; 7 /触发器已创建SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startupORACLE 例程已经启动。Total System Global Area 1660944384 bytesFixed Size 3046320 bytesVariable Size 989856848 bytesDatabase Buffers 654311424 bytesRedo Buffers 13729792 bytes数据库装载完毕。数据库已经打开。SQL> conn scott@pdborcl/tiger已连接。
总结:
要想像11g那样使用普通用户,就得在PDB下面使用。
参考资料: Oracle 12c 使用scott等普通用户的步骤
- Oracle 12c 使用普通用户的步骤
- Oracle 12c 使用普通用户的步骤
- Oracle 12c 使用scott等普通用户的方法
- Oracle 12c安装步骤及使用问题总结:
- 普通用户如何获取超级管理员权限的步骤
- ORACLE DBA与普通用户的区别
- 创建普通用户步骤
- Oracle 12c win7-64安装步骤
- Oracle 12C 数据恢复步骤
- oracle 12c database安装步骤
- 在 SQLplus 上用普通用户登录的步骤。
- oracle 序列的概念与使用步骤
- Oracle中使用fnd_log_messages调试的步骤
- 【使用C语言的7的步骤】
- Sudo控制普通用户使用命令的权限
- Win adminstrator用户安装Oracle,普通用户无权限使用解决方案
- C#ADO.NET使用Dataset的步骤
- 使用C语言的7个步骤
- Babelfish POJ
- 单变量线性回归中的梯度下降法求解代价函数的最小值
- Linux下安装Mongodb
- LeetCode
- org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
- Oracle 12c 使用普通用户的步骤
- PAT甲级 1037 -- 没有注释
- 【CDOJ1059】秋实大哥与小朋友
- MYSQL当权限更改生效时
- Android -- Service官方文档简译
- QT 为按钮添加事件
- PAT甲级 1038 -- 没有注释
- Ubuntu下配置Maven
- 全排列问题