oracle 12c 解决pdb中用户无法登录问题的详细步骤

oracle 12c 解决pdb中用户无法登录的问题

oracle12c 有一个很大的变动就是引入了pdb可插入数据库,而且在cdb中只能创建c##或者C##开头的用户,只有在pdb数据库中才能创建我们习惯性命名的用户,oracle称之为Local User,前者称之为Common User。在pdb中新建用户,发现无法直接连接新用户,下面是解决方案:

1.首先进入pdb

alter session set container=orcl;

show con_name;
2.创建新用户,并赋权
create user scott identified by oracle;
grant connect,resource to scott;

3.直接连接新建用户发现无法连接,

  直接登录是不可以的:
SQL> conn scott/oracle
ERROR:
ORA-01017: invalid username/password; logon denied

4.通过下面方式解决:
因为CDB和PDB的servicename可能是不一样的,需要先查询pdb的service_name 

SQL> select name,pdb from v$services;
NAME          PDB
-------------------- --------------------
orcl                     ORCL

vi tnsnames.ora  编辑tnsnames文件,添加下面内容
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)       把查询到pdb对应的service_name写到这里
    )
  )

  必须要加上tnsnames的连接串才可以连接用户:
 SQL> conn scott/oracle@ORCL
Connected.
SQL> show user
USER is "SCOTT"

连接成功!

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值