Oracle PDB下本地用户无法使用本地连接的问题
模拟:
1.本地用户本地连接:
SQL> show con_name;
CON_NAME
CDB$ROOT
SQL> alter session set container=pdb1;
Session altered.
SQL> create user test identified by test;
User created.
SQL> grant connect,resource to test;
Grant succeeded.
使用test用户连接:
SQL> conn test/test
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
解决办法:
给该PDB配置tnsname:
查出该PDB的service_name
select name,network_name,pdb from v$services where pdb=’PDB1’;
NAME NETWORK_NAME PDB
pdb1 pdb1 PDB1
tnsname.ora:
pdb1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.238.14)(PORT = 1529))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb1)
)
)
尝试连接:
SQL> alter session set container=pdb1;
SQL> conn test/test
@pdb1;
Connected.
问题解决。
2.公有用户本地连接:
SQL> show con_name
CON_NAME
CDB$ROOT
SQL> create user c##abc identified by c##abc;
SQL> grant connect,resource to c##abc;
进入PDB进行查看该公有用户:
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 ABC READ WRITE NO
5 SALESPDB MOUNTED
SQL> alter session set container=abc;
Session altered.
SQL> select username from dba_users where username=’C##ABC’;
USERNAME
C##ABC
SQL> conn c##abc/c##abc
Connected.
可以连接~
结论:
在PDB中创建的本地用户,无法使用本地连接该用户conn name/password
需要使用网络连接该用户conn name/password@tnsname
在CDB中创建的公有用户,会在PDB下自动创建,在PDB中可以使用本地连接该公有用户。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756