Oracle Database 12c HR账户的解锁/配置

Oracle Database 12c HR账户的解锁


P话少说,不需要解释,只要给我代码–请直接翻到文章末尾,代码会进行汇总。

由于Oracle 12c采用了多租用户环境(Multitenant Environment),所以解锁hr用户并不像之前版本那么容易。新版的Oracle分为**容器数据库(CDB)可插拔数据库(PDB)**两种模式。
CDB与PDB对应关系

可以点击此处查看CDB与PDB具体是怎么个情况。
正是由于这种新特性,使得创建用户与解锁内置用户与前版本有了很大的区别。
要解锁HR用户分为三步

1.获取到可插拔数据库的名字

与可插拔数据库相关的服务名称以及数据库并负责与客户端通信

  • 要获得这些信息,我们需要登陆到sys用户数据库
sqlplus / as sysdba

连接数据库

  • 可以通过检查根CDB容器或从conn_name的值中查询任何PDB数据库名称
    使用SHOW con_name;可以查看当前所连接的数据库。
    DB

可以看到我们默认登陆的数据库是CDB的ROOT数据库。
接下来进行查询PDB数据库的名称与连接ID,它存在于V$PDBS数据表中。

SELECT name, con_id FROM v$pdbs;

数据库

可以看到默认有两个PDB数据库,PDB$SEEDORCLPDB
PDB S E E D 是 在 创 建 时 一 个 默 认 的 可 插 拔 数 据 库 , I D 是 2 而 O R C L P D B 是 安 装 过 程 中 用 户 自 行 定 义 的 , 可 能 会 有 不 同 的 名 字 , C O N I D 为 3 , 我 们 之 后 将 会 使 用 C O N I D 进 行 服 务 名 称 的 查 询 。 我 们 可 以 在 ‘ v SEED是在创建时一个默认的可插拔数据库,ID是2 而ORCLPDB是安装过程中用户自行定义的,可能会有不同的名字,CON_ID为3,我们之后将会使用CON_ID进行服务名称的查询。 我们可以在`v SEEDID2ORCLPDBCONID3使CONIDvactive_services`表中找到ORCLPDB服务的名称,通常它们是一样的。

SELECT name FROM v$active_services WHERE con_id=3;

查看数据库

可以看到这里我的服务名为orclpdb

2.修改tnsnames.ora文件

  • 此步骤是为了更好的连接hr数据库并避免TNS-ORA错误
    打开Oracle目录下的tnsnames.ora文件,我的在F:\app\product\12.2.0\dbhome_1\network\admin路径下。
    在这里插入图片描述

文件如这个样子,将最后的复制并修改,然后保存退出。
在这里插入图片描述

因为我们刚刚修改了服务,所以我们必须重启Listerner服务,以管理员权限运行CMD并重启

lsnrctl reload

在这里插入图片描述

3.再次连接到sysdba进行hr的解锁

sqlplus / as sysdba
在这里插入图片描述

可以看到我们仍在CDB的ROOT下,所以我们需要连接到PDBORCL下进行hr用户的解锁工作。此处我们使用ALTER SESSION命令。

ALTER SESSION SET CONTAINER = orclpdb;

在这里插入图片描述

可以看到此时已经切换到可插拔数据库。
大多数的数据库执行DDL命令需要处于OPEN状态,而可插拔数据库默认处于MOUNT状态。你可以通过查看v$pdbs表来查询它们的状态。

SELECT name, open_mode FROM v$pdbs;

在这里插入图片描述

可以看到,当前的ORCLPDB是处于MOUNT状态的。
所以我们首先得使其处于打开状态,使用ALTER PLUGGABLE DATABASE命令进行打开。

ALTER PLUGGABLE DATABASE orclpdb open;

在这里插入图片描述

可以看到此操作以后可插拔数据库已经打开并准备好了读写。
最后,进行hr账户的解锁

ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;

此命令将hr账户密码修改为hr并解锁
在这里插入图片描述

OK 成功解锁

尝试连接

相比于早期版本的Oracle数据库,Oracle 12c 需要你一起提供服务名称与日志中HR用户的凭据。由于我们修改了tnsnames.ora文件,所以我们可以使用conn 用户名/密码@服务名的方式进行连接。

conn hr/hr@ORCLPDB;

在这里插入图片描述

成功连接!

喜欢的话就顶一下吧~

注意的点

可插拔数据库的名称勿写错。

参考资料

Oracle Database 12c Tutorial 2: How To Unlock HR schema in Oracle Database 12c:https://www.youtube.com/watch?v=F81gfUnznZY&t=62s
潇湘隐者 ORACLE 12C新特性——CDB与PDB:http://www.cnblogs.com/kerrycode/p/3386917.html

代码

此处代码均为在cmd下操作,方括号中的内容进行替换。

sqlplus / as sysdba

SELECT name, con_id FROM v$pdbs;           ::此处获取到可插拔数据库的名称与id

SELECT name FROM v$active_services WHERE con_id=[查询到的ID];  ::此处查询到服务名

[此处需要修改tnsnames.ora文件,参见上面第二步]

ALTER SESSION SET CONTAINER = [查询到的服务名];

ALTER PLUGGABLE DATABASE [可插拔数据库名称] open;

ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值